文件displaypage.php看起來是這樣的:PHP文件給exec()的另一個PHP文件,並使用返回的數據
<?php
exec("php filetoexecute.php 2>&1",$output);
print_r($output);
?>
文件filetoexecute.php看起來是這樣的:
<?php
echo "test data";
?>
的我的$ output數組中只有一個是PHP_FCGI_CHILDREN is not valid
,我在網上沒有得到太多的幫助。我知道爲什麼它在那裏,我將STDERR重定向到STDOUT,但爲什麼文本test data
沒有寫入數組?
我知道它會工作,只要我不想檢索輸出。在filetoexecute.php的代碼將正確執行(比方說,我把它寫的東西到一個數據庫)如果displaypage.php行看起來是這樣的:
exec("php filetoexecute.php >/dev/null");
這當然是因爲輸出被傾倒到無所事事。
我這樣做是因爲我需要filetoexecute.php在不同的php會話cookie下操作,而不是調用它的文件。我不能只交換由filetoexecute.php處理的幾行代碼。我需要知道filetoexecute.php的結果是什麼,這就是爲什麼我需要它產生的數據。
此外,passthru()
似乎並沒有幫助我。
最後,我還沒有想過使用exec()或passthru(),想要完成我想要的東西的提示將不勝感激!
簡單地使用文件或流與父進程交談可能更簡單(對於您的情況,使用'displaypage.php')。 – uzyn 2012-07-24 03:25:39
@Patrick我運行您的程序在我的本地主機上,並正確輸出「Array([0] => test data)」作爲結果...帶有error_reporting(E_ALL); – swapnesh 2012-07-24 03:30:08
@uzyn你可以擴展一下嗎?我不確定你的意思是什麼...... – Patrick 2012-07-24 03:32:09