Вызов скрипта PHP из программы на C ++ - PullRequest
5 голосов
/ 27 февраля 2012

Я пытаюсь вызвать скрипт PHP из программы на C ++. Например, вот пример программы на 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.

Теперь очевидная вещь, которую нужно проверить, - это если файлы находятся в одном каталоге (они действительно есть), однако ошибка все еще сохраняется. Любые отзывы о том, как я могу сделать что-то вроде этого?

Спасибо.

Ответы [ 2 ]

5 голосов
/ 27 февраля 2012

Попробуйте:

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

Если вы хотите выполнить сценарий php в качестве сценария командной строки, вы должны добавить строку shebang в первой строке вашего сценария php.Как

#!/usr/bin/php
2 голосов
/ 27 февраля 2012

Вы должны указать программу, которая будет запускать сценарий («php» в вашем случае), если файл не помечен как исполняемый, принадлежит каталогу переменной среды PATH (или вы запускаете ./test.php) и имеет шебанг Вы должны использовать system("php test.php").

Это потому, что "sh" ищет "test.php" в каталогах, указанных в PATH, а рабочий каталог обычно не содержится в PATH.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...