2010-08-13 226 views
2

試圖解決這個問題。我想PHP中執行一個Perl腳本,使用了shell_exec()像這樣:從PHP執行Perl腳本的問題

<?php 
$output=shell_exec("./tst.pl > test.txt"); 
//$output=shell_exec("./tst.pl"); 
echo $output; 
?> 

它不會輸出寫到使用「>」 FILENAME.TXT文件。 這將工作,如果我執行,而不是將其指向文件名,因爲我可以用echo來確認它。

這是否與使用「>」有關? 權限應該沒問題,因爲我可以在命令行上運行相同的perl腳本並直接導入文件。任何建議執行此?

的「test.txt的」輸出將被用作輸入:

<?php 
$data = array(); 
$InputFile = file("test.txt"); 
... 
?> 
+0

如果php是由網絡服務器運行,它可能有不同的權限 – Robus 2010-08-13 22:46:35

+0

好點。我在開發中運行這個,我以root身份執行此操作。所以我會認爲這會工作。 – cjd143SD 2010-08-13 22:56:23

回答

0

這肯定是權限問題。將文件寫入/ tmp,並且工作正常。

<?php 
$output=shell_exec("./tst.pl > /tmp/test.txt"); 
echo $output; 
?>