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.
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
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With