Calling a PHP script from a C++ Program

2019-05-03 02:04发布

I'm attempting to call a PHP script from a C++ program. For instance, here is an example C++ program:

#include <iostream>
#include <cstdlib>

using namespace std; 

int main() {

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

return 0;
}

This program is calling some script "test.php" which might be structured like this:

<?php
echo "Hello";
?>

When running the C++ code, I get the following:

sh: 1: test.php: not found.

Now the obvious thing to check is if the files are in the same directory (they indeed are), however the error still persists. Any feedback on how I might go about doing something like this?

Thanks.

2条回答
姐就是有狂的资本
2楼-- · 2019-05-03 02:24

Try:

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

If you want to execute a php script as a command line script you must add a shebang line at the first line of you php script. Like

#!/usr/bin/php
查看更多
叛逆
3楼-- · 2019-05-03 02:48

You have to specify the program which shall run the script ("php" in your case), unless the file is marked as executable, belongs to a directory of the PATH environment variable (or you run ./test.php) and has a shebang. You have to use system("php test.php").

This is because "sh" searches for "test.php" in the directories specified by PATH and the working directory usually is not contained in PATH.

查看更多
登录 后发表回答