从C ++程序调用PHP脚本

时间:2012-02-27 18:45:47

标签: php c++ linux system

我正在尝试从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.

现在要检查的显而易见的事情是文件是否在同一目录中(确实是这样),但错误仍然存​​在。关于我如何做这样的事情的任何反馈?

感谢。

2 个答案:

答案 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中。