我正在尝试从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.
现在要检查的显而易见的事情是文件是否在同一目录中(确实是这样),但错误仍然存在。关于我如何做这样的事情的任何反馈?
感谢。
答案 0 :(得分:5)
尝试:
cout << std::system("php -f test.php");
如果要将php脚本作为命令行脚本执行,则必须在php脚本的第一行添加一个shebang行。喜欢
#!/usr/bin/php
答案 1 :(得分:2)
你必须指定运行脚本的程序(在你的情况下是“php”),除非文件被标记为可执行文件,属于PATH
环境变量的目录(或者你运行{{ 1}})并且有一个shebang。您必须使用./test.php
。
这是因为“sh”在system("php test.php")
指定的目录中搜索“test.php”,工作目录通常不包含在PATH
中。