如何在 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 控制器功能的主要内容,如果未能解决你的问题,请参考以下文章