CI 框架下执行CLI(命令行)
2016-11-21 16:13
204 查看
1.可以按照Ci官方文件的指导来进行操作
让我们先创建一个简单的控制器,打开你的文本编辑器,新建一个文件并命名为 Tools.php,然后输入如下的代码:
然后将文件保存到 application/controllers/ 目录下。
现在你可以通过类似下面的 URL 来访问它:
或者,我们可以通过 CLI 来访问。在 Mac/Linux 下你可以打开一个终端,在 Windows 下你可以打开 “运行”,然后输入 "cmd",进入 CodeIgniter 项目所在的目录。
如果你操作正确,你应该会看到 Hello World! 。
这里我们传一个参数给它,这和使用 URL 参数是一样的。"John Smith" 被作为参数传入并显示出:
2.需要注意以下情况可能导致执行或者输出内容失败
首先要检查下CI框架中的配置文件config.php中的参数如下:
$config['uri_protocol'] 参数设置为‘REQUEST_URI’,将会导致命令行执行失败。
若所在项目中有url权限控制,记得把要执行文件的路径放到白名单中。
在Windows下环境执行,需要配置php的环境变量
让我们先创建一个简单的控制器,打开你的文本编辑器,新建一个文件并命名为 Tools.php,然后输入如下的代码:
<?php class Tools extends CI_Controller { public function message($to = 'World') { echo "Hello {$to}!".PHP_EOL; } }
然后将文件保存到 application/controllers/ 目录下。
现在你可以通过类似下面的 URL 来访问它:
example.com/index.php/tools/message/to
或者,我们可以通过 CLI 来访问。在 Mac/Linux 下你可以打开一个终端,在 Windows 下你可以打开 “运行”,然后输入 "cmd",进入 CodeIgniter 项目所在的目录。
$ cd /path/to/project; $ php index.php tools message
如果你操作正确,你应该会看到 Hello World! 。
$ php index.php tools message "John Smith"
这里我们传一个参数给它,这和使用 URL 参数是一样的。"John Smith" 被作为参数传入并显示出:
Hello John Smith!
2.需要注意以下情况可能导致执行或者输出内容失败
首先要检查下CI框架中的配置文件config.php中的参数如下:
/* |-------------------------------------------------------------------------- | URI PROTOCOL |-------------------------------------------------------------------------- | | This item determines which server global should be used to retrieve the | URI string. The default setting of 'REQUEST_URI' works for most servers. | If your links do not seem to work, try one of the other delicious flavors: | | 'REQUEST_URI' Uses $_SERVER['REQUEST_URI'] | 'QUERY_STRING' Uses $_SERVER['QUERY_STRING'] | 'PATH_INFO' Uses $_SERVER['PATH_INFO'] | | WARNING: If you set this to 'PATH_INFO', URIs will always be URL-decoded! */ //$config['uri_protocol'] = 'REQUEST_URI'; $config['uri_protocol'] = 'AUTO';
$config['uri_protocol'] 参数设置为‘REQUEST_URI’,将会导致命令行执行失败。
若所在项目中有url权限控制,记得把要执行文件的路径放到白名单中。
在Windows下环境执行,需要配置php的环境变量
/* * windows下cmd执行操作 * 当前CI框架的入口文件index.php所在目录 D:\workspace\network\trunk\public * index.php 为入口文件 * crontab文件夹处在application/controllers下面,已加入白名单 * tools为crontab下面的文件,message为tools.php中的方法, * tom1112为传入的变量值 */ D:\workspace\network\trunk\public>php index.php crontab/tools message/tom1112 /*输出*/ Hello tom1112!
相关文章推荐
- CI框架在CLI下执行占用内存过大问题的解决方法
- CI框架在CLI下执行占用内存过大问题的解决方法
- CI框架cli命令行
- windows 下 ci 框架 命令行模式(cli)的使用
- CI框架在CLI下执行占用内存过大问题的解决方法
- CI框架 -- CLI执行php代码
- php cli命令行模式运行mysql_connect不能连接和运行框架程序
- ci框架执行流程
- CI框架执行流程深入分析
- 跨平台框架Cordova 命令行简介(CLI)
- CI框架 PHP cli中链接mysql的错误(部分)--记录
- 跨平台框架Cordova 命令行简介(CLI)
- php命令行(cli)下执行PHP脚本文件的相对路径的问题解决方法
- crontab 定时执行PHP命令CI框架
- php在cli命令行执行exec函数中的top命令正常,浏览器访问无输出
- 在CI框架下执行存储的方法
- icePHP框架使用文档-命令行执行
- 直接命令行中执行PHP代码(PHP CLI模式)
- 使用cli(命令行)方式执行php程序进行高效的程序调试
- 用Thinkphp写的简单程序在命令行执行(非 Thinkphp 下的cli模式 而是php下的命令模式)