我正在使用xampp和我的本地窗口系统。 现在有一天我正在使用codeigniter,我正在尝试将mycontroller函数作为后台作业运行。像
class Admin extends MX_Controller{
function __construct(){
parent::__construct();
}
function index(){
echo "working";
$command = "D:\xampp\php\php D:\xampp\htdocs\client\newslatter\index.php admin preget";
echo $out = exec( $command);
echo "here";
}
function preget(){
echo "<br/>Done!!!!!!";
}
}
我无法使用exec命令运行一个函数可以帮助解决我的问题吗?。
答案 0 :(得分:0)
CodeIgniter在其手册中有一个与此完全相同的页面:
http://ellislab.com/codeigniter/user-guide/general/cli.html
注意,在你的命令中,你只是把路径放到文件中,你没有添加“php”
$ command =“php D:\ xampp \ php \ php D:\ xampp \ htdocs \ client \ newslatter \ index.php admin preget”;
也许这可以解决你的问题。
你的windows的“路径”环境变量中有php.exe吗?
这个过程应该很简单:你运行&gt; Windows中的“cmd”并导航到CodeIgniter项目。
$ cd / path / to / project; $ php index.php YourController ControllerMethod
答案 1 :(得分:0)
我看到你正在使用Windows。要在Windows中执行此操作,我相信'exec()'的工作方式就是使用“php”命令调用命令提示符,假设您已安装“php”作为环境变量。
所以你的$命令将是
$command = "php D:\xampp\php\php D:\xampp\htdocs\client\newslatter\index.php admin preget";
但是,仅供参考,这是同步通话。
如果你想做一个异步的(很多时候你想要),它就不会这样。 我之前做过一些研究,因为我遇到了这个问题。当您想在Windows上使用异步运行exec时,这可能是您正在寻找的。 p>
$WshShell = new COM('WScript.Shell');
$oExec = $WshShell->Run('php D:\xampp\php\php D:\xampp\htdocs\client\newslatter\index.php admin preget', 0, false);
希望有帮助吗?
托马斯