【问题标题】:Calling a PHP script from a C++ Program从 C++ 程序调用 PHP 脚本
【发布时间】:2012-03-17 05:54:53
【问题描述】:

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

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

谢谢。

【问题讨论】:

  • 如果没有别的,它必须是php test.php
  • 天哪,我犯了一个多么愚蠢的错误。来吧,留下一个实际的回应,我会确保选择你的答案,以防其他人有同样的问题。 (虽然由于简单,这个问题也可能被关闭)。
  • 继续把积分给别人,很高兴我能帮上忙! :-)
  • 无论哪种方式都非常感谢。 :)

标签: php c++ linux system


【解决方案1】:

您必须指定应运行脚本的程序(在您的情况下为“php”),除非该文件被标记为可执行文件,属于PATH 环境变量的目录(或者您运行./test.php)并有一个shebang。你必须使用system("php test.php")

这是因为“sh”在PATH指定的目录中搜索“test.php”,而工作目录通常不包含在PATH中。

【讨论】:

    【解决方案2】:

    试试:

    cout << std::system("php -f test.php");
    

    如果您想将 php 脚本作为命令行脚本执行,您必须在 php 脚本的第一行添加一个 shebang 行。喜欢

    #!/usr/bin/php
    

    【讨论】:

      猜你喜欢
      • 2018-04-15
      • 1970-01-01
      • 1970-01-01
      • 2014-07-20
      • 2023-03-21
      • 1970-01-01
      • 1970-01-01
      • 2019-07-30
      • 1970-01-01
      相关资源
      最近更新 更多