我的操作系統是Ubuntu 14.04,我有lampp。我想通過我的瀏覽器從PHP 執行一個perl文件。我只是使用exec函數(在PHP中)來做到這一點,它的工作原理。我已經在stackoverflow中看到類似的問題,但它們與此無關。某些類型的perl文件沒有給PHP執行函數執行輸出
例的Perl文件名爲test.pl:
#!usr/bin/perl
print "This is a perl file";
例PHP文件名爲test.php的:
<?php
$perl=exec('perl test.pl',$out,$r); //Works successfully
print_r($out); //Outputs Array ([0]=>This is a perl file)
?>
但我需要執行一些其他的Perl文件。 我可以從命令行成功執行。讓我們假設該文件的名稱是: test2.pl
當命令在命令行給出了作爲
perl test2.pl -u argument1 -m argument2 -p testresult
這需要幾分之一秒執行上述命令。 我得到命令行中的輸出。
但是,當我從PHP執行相同的命令爲:
<?php
$perl=exec('perl test2.pl -u argument1 -m argument2 -p testresult',$out,$r);
print_r($out); //Outputs Array ()
?>
我的輸出是
Array
(
)
現在我沒有得到輸出,但是perl的文件執行,但我無法獲得$out
的輸出。我可以向你保證perl文件是被執行的,因爲它在執行後也會生成某種文件。
我不明白爲什麼它不給我輸出。
我也試圖在PHP已經下列功能:,
exec
system
shell_exec
他們都不是給我的輸出,他們正在罰款test.pl而不是test2.pl(test.pl和上面提到了test2.pl)。
我的目標是獲得輸出。
編輯:解決。感謝hrunting的回答。
就解決了!我幾乎放棄了所有的希望,並認爲這種perl腳本不能被執行。非常感謝。我試了一下,它做到了。 –