2012-10-01 125 views
0

嗨,我試圖從cmd執行一個PHP腳本與通過GET請求給出的一些數據,但我無法得到它等待完成命令出於某種原因。 代碼是。PHP不等待執行完成

<?php 
error_reporting(0); 

file_put_contents("query.txt", $_GET['query']); 


exec("php loop1.php"); 
$result=file_get_contents("result.html"); 
echo $result; 
?> 

loop1的代碼太複雜了,而不是問題的要點。

+1

你檢查'loop1'實際上是否正在運行?如果'php'不在你的父腳本調用的任何shell的路徑中,你只會得到一個「沒有這樣的命令/文件名」的錯誤。 exec()調用的返回值是什麼?嘗試將可選的第三個變量添加到exec以捕獲調用的退出值 –

+0

可選的第二個變量$輸出也可能包含線索 –

+1

是否有您嘗試從此PHP腳本運行外部PHP腳本的原因?爲什麼不只是做一個包含,並讓它在當前腳本中運行? –

回答

0

而不是使用隱含的「PHP」 CLI工具也許你會通過對給定的更明確的路徑有更好的運氣安裝/平臺,即:

$phpcli = '/usr/local/bin/php'; 
exec($phpcli . ' loop1.php'); 

(一定要首先設定$ phpcli包含正確的顯式路徑到PHP)

+0

我改變了代碼,所以它不需要獲取請求並從cmd運行,結果是正確的,並且它等待exec完成。 更改爲 file_put_contents(「query.txt」,「WWII」); – Evan