【问题标题】:How can I invoke a PHP script from Perl?如何从 Perl 调用 PHP 脚本?
【发布时间】:2011-01-31 07:04:37
【问题描述】:

如何从 Perl 脚本调用 PHP 脚本并将其输出作为变量获取?

【问题讨论】:

    标签: php perl


    【解决方案1】:

    使用backtick operator

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

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

    如果你想将输出作为流,你也可以open 使用管道(Perl

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

    perldoc -f open

    【讨论】:

    • 我做了,但什么也没发生。我想这对谷歌来说太简单了。我是一个 php 人,你可能已经猜到了,perl 对我来说就像一个完全不同的世界。谢谢。
    【解决方案2】:

    this question 的反面,但答案相同。

    使用backticksqx 运算符:

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

    【讨论】:

    • 我更喜欢使用readpipe 来代替反引号,我认为这样可以更清楚地表达意图。
    【解决方案3】:

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

    如果您的脚本仅通过 HTTP 请求起作用,那么您需要使用 LWP::UserAgent 或 WWW::Mechanize 之类的东西通过其 URL 获取内容,类似于您需要使用 HTTP_Request.php在 PHP 中。

    【讨论】:

    • LOL,感谢社区更新近 8 年后的事实。我现在更擅长区分它/它,在比较页面中看到它在之前状态下的样子很痛苦。我认为它确实引发了有人在很久以后在一个小问题上接受这种治疗,很抱歉,但如果有人让我追溯起来看起来更好,我不会抱怨。 :)
    猜你喜欢
    • 2011-04-13
    • 1970-01-01
    • 1970-01-01
    • 2023-03-17
    • 2012-07-23
    • 1970-01-01
    • 1970-01-01
    • 2012-03-10
    相关资源
    最近更新 更多