1.可以按照Ci官方文件的指導來進行操作
讓我們先創建一個簡單的控制器,打開你的文本編輯器,新建一個文件並命名為 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!