如何在 php 中使用 exec 命令运行 codeigniter 控制器功能

Posted

技术标签:

【中文标题】如何在 php 中使用 exec 命令运行 codeigniter 控制器功能【英文标题】:How to run a codeigniter controller function using exec command in php 【发布时间】:2014-05-28 05:44:33 【问题描述】:

我在本地窗口系统中使用 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 命令运行函数,谁能帮我解决问题?

【问题讨论】:

确定要使用 URL 而不是文件路径? 【参考方案1】:

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的“Path”环境变量中有php.exe吗?

这个过程应该很简单:你在 Windows 中运行 > "cmd" 并导航到你的 CodeIgniter 项目。

$ cd /path/to/project; $ php index.php YourController ControllerMethod

【讨论】:

【参考方案2】:

我看到你正在使用 Windows。要在 Windows 中执行此操作,我相信 'exec()' 的工作原理就像您在命令提示符下使用“php”命令所做的那样,假设您已安装“php”作为环境变量。

所以你的 $command 会是

$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);

希望这有帮助吗?

托马斯

【讨论】:

以上是关于如何在 php 中使用 exec 命令运行 codeigniter 控制器功能的主要内容,如果未能解决你的问题,请参考以下文章

如何在 PHP 中运行 ffmpeg 命令

使用 exec() 在 PHP 中运行 python 脚本

如何在php中打开终端窗口并执行命令?

php的ssh2_exec()函数不能正常使用?

无法使用 PHP shell_exec() 执行 telnet 命令

如何让php执行shell