我试图从C ++程序调用一个PHP脚本。 例如,下面是一个C ++程序的例子:
#include <iostream> #include <cstdlib> using namespace std; int main() { cout << std::system("test.php"); return 0; }
这个程序正在调用一些脚本“test.php”,它可能是这样构造的:
<?php echo "Hello"; ?>
运行C ++代码时,我得到以下内容:
sh: 1: test.php: not found.
现在显而易见的是如果文件在同一个目录(他们确实是),但是错误仍然存在。 任何关于如何去做这样的事情的反馈?
谢谢。
尝试:
cout << std::system("php -f test.php");
如果你想执行一个PHP脚本作为命令行脚本,你必须在你的第一行PHP脚本添加一个shebang行。 喜欢
#!/usr/bin/php
除非文件被标记为可执行文件,属于PATH
环境变量的目录(或运行./test.php
),并且必须指定运行脚本的程序(在您的情况下为“php”)家当。 你必须使用system("php test.php")
。
这是因为“sh”在PATH
指定的目录中搜索“test.php”,工作目录通常不包含在PATH
。