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