我的操作系统是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脚本不能被执行。非常感谢。我试了一下,它做到了。 –