Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Calling a PHP script from a C++ Program

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.

like image 634
Vincent Russo Avatar asked Feb 27 '12 18:02

Vincent Russo


2 Answers

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
like image 55
Cemal Eker Avatar answered Sep 30 '22 01:09

Cemal Eker


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.

like image 27
Gandaro Avatar answered Sep 30 '22 02:09

Gandaro