我正在尝试从PHP页面中执行单独的PHP脚本。经过一些研究,我发现可以使用exec()
函数。
我还引用了this SO solution来查找php二进制文件的路径。所以我的完整命令看起来像这样:
$file_path = '192.168.1.13:8080/doSomething.php';
$cmd = PHP_BINDIR.'/php '.$file_path; // PHP_BINDIR prints /usr/local/bin
exec($cmd, $op, $er);
echo $er; // prints 127 which turns out to be invalid path/typo
echo "Hi there!";
我知道$file_path
是正确的道路,因为如果我打开它的价值;即192.168.1.13:8080/doSomething.php
,我确实得到了“你好!”打印出来。这让我认为PHP_BINDIR.'/php'
是错误的。
我是否应该尝试以其他方式获取php二进制文件的路径?
答案 0 :(得分:1)
您要求的文件可通过Web服务器访问,而不是本地PHP脚本。因此,您只需通过
即可获得脚本的结果$output = file_get_contents($file_path);
如果您出于某些原因确实需要exec
该文件,那么您必须在服务器目录结构中为该文件提供完整路径,而不是服务器 URL < /强>:
$file_path = '/full/path/to/doSomething.php';
$cmd = PHP_BINDIR.'/php '.$file_path;
exec($cmd, $op, $er);