2010-03-24 119 views

回答

5

使用backtick operator

my $phpOutput = `/usr/bin/php-cli your-script.php`; 

请注意,您可能需要修改路径指向您的php可执行文件。

如果你想拥有的输出流,你也可以用open管道(Perl的< 3):

open PHPOUT, "/usr/bin/php-cli your-script.php|"; 
while (<PHPOUT>) { 
    # do something with the current line $_ 
} 

perldoc -f open

+0

我做了,没有出现。对于谷歌来说这太简单了,我猜。我是一个PHP的家伙,你可能已经猜到了,Perl对我来说就像是一个完全不同的宇宙。谢谢。 – vasion 2010-03-24 14:32:51

1

this question相反,但答案相同。

使用backticksqx操作:

$output = `/path/to/php my_script.php`; 
+0

我更喜欢使用'readpipe'来反引号,我认为它使意图更清晰。 – Matt 2010-03-24 16:38:43

1

它可能会更容易提炼成其核心问题这一点,如何从perl的,这是在perlop手册页的信息回答别的程序有关qx (或通过其他方式查找perl qx命令)。这会告诉您如何运行外部程序并获取输出,假设您的PHP脚本在通过命令行调用时可以正常工作(可以通过php your-php-script.php运行它吗?)。

如果您的脚本只能通过HTTP请求发挥作用,那么您需要使用类似于LWP :: UserAgent或WWW :: Mechanize的内容来通过其URL获取内容,与您需要使用HTTP_Request.php PHP。

+0

大声笑,感谢社区更新近8年后的事实。我在区分现在的状况方面要好得多,并且在比较页面中看到它在以前的状态下看起来很痛苦是很痛苦的。我认为这真的让一个人在稍后的一个小问题上得到这种待遇,所以很抱歉,但是如果有人让我更具追溯力,我不会抱怨。 :) – kbenson 2018-03-08 00:51:55