2013-04-11 1 views
0

Я пытаюсь выполнить питон скрипт с PHP Но я не получил никаких результатов: Я пыталсяExec() и PassThru() PHP выполнение

$tmp = passthru("C:\\Python27\\python.exe C:\\Python27\\script.py C:\\Python27\\file.pdf",$output); 
print($output) 

результаты: "1"

Хотя

$tmp = exec("C:\\Python27\\python.exe C:\\Python27\\script.py C:\\Python27\\file.pdf",$output); 

возвращает Array()

Я освобожденный, чтобы вернуть строку, любые предложения? Я проверил в моем файле php.ini

safe_mode = Off 

Спасибо !!

ответ

1

В документации exec() указано, что параметр $output представляет собой массив, который будет заполняться каждой строкой. Если вы хотите, чтобы превратить это в одну строку, используйте:

$output_string = implode("\n", $output); 
+0

У меня нет результатов в моем массиве, это моя проблема – Alex

+0

Статус выхода 1, который вы получили от 'passthru', предполагает, что на python появилась ошибка при попытке запустить скрипт. Если сценарий не запускается, вы не получите никакого вывода. – Barmar

+0

Но когда я использую эту команду в Windows, я получил результаты: C: \\ Python27 \\ python.exe C: \\ Python27 \\ script.py C: \\ Python27 \\ file.pdf – Alex

0

Это должно работать для вас: выход

ob_start(); 

passthru("C:\\Python27\\python.exe C:\\Python27\\script.py C:\\Python27\\file.pdf"); 

$filedata = ob_get_clean(); 

echo $filedata; 
0

питона буферов по умолчанию. Установите переменную среды PYTHONUNBUFFERED в непустую строку или запустите python с -u.