反引号操作符不用于从perl执行php脚本

时间:2016-01-27 15:45:19

标签: php perl

我试图从perl调用php脚本。谷歌搜索后发现我可以使用反引号运算符。

但是当我尝试

my $phpOutput = `https://control.msg91.com/api/sendhttp.php?authkey=<mykey>&mobiles=<mobile>&message=Thank%20you%20for%20placing%20order%20at%20WokoShop.%20Order%20id%3A%201434%20Invoice%20Value%3A%201445.04&sender=WOKOSP&route=4`;

它不起作用。我在浏览器中尝试使用的网址相同。

我需要做些什么改变才能使它在perl脚本中工作。

我正在使用这个perl包。

use LWP::Simple;

2 个答案:

答案 0 :(得分:6)

反引号的内容不是shell命令,它们是一个URL。由于您已经在使用throw new Error(err) ,因此您可以通过调用LWP::Simple

来检索此网址的值

看起来像这样,虽然这个值可能无法代表您的预期,因为您需要将get<mykey>替换为真实值。您没有 使用URI模块构建URL,但这样可以更简单地更改单个查询参数并避免您必须处理URI转义字符串< / p>

<mobile>

输出

use strict;
use warnings 'all';
use feature 'say';

use URI;
use LWP::Simple 'get';

my $url = URI->new('https://control.msg91.com/api/sendhttp.php');
$url->query_form(
    authkey => '<mykey>',
    mobiles => '<mobile>',
    message => 'Thank you for placing order at WokoShop. Order id: 1434 Invoice Value: 1445.04',
    sender  => 'WOKOSP',
    route   => 4,
);

say get $url;

答案 1 :(得分:-3)

要在UNIX中调用特定的URL /页面,您可以使用 curl ,因此您不必按照反引号键入URL,而是这样做:< / p>

my $phpOutput = `curl 'https://control.msg91.com/api/sendhttp.php?authkey=<mykey>&mobiles=<mobile>&message=Thank%20you%20for%20placing%20order%20at%20WokoShop.%20Order%20id%3A%201434%20Invoice%20Value%3A%201445.04&sender=WOKOSP&route=4'`;

你也可以这样做:

my $phpOutput = qx|curl 'https://control.msg91.com/api/sendhttp.php?authkey=<mykey>&mobiles=<mobile>&message=Thank%20you%20for%20placing%20order%20at%20WokoShop.%20Order%20id%3A%201434%20Invoice%20Value%3A%201445.04&sender=WOKOSP&route=4'|;