【问题标题】:PHP EXECUTE PERL w/ agrumentsPHP EXECUTE PERL 带 / 参数
【发布时间】:2014-11-26 22:06:55
【问题描述】:

我有以下 php 脚本,它需要与参数一起调用 perl 脚本。如果我的路径正确,语法有什么问题吗?服务器端的 php 和 perl。 php 通过 url 接收信息($GET['zipc']。perl 脚本将在服务器上生成一个 xml 文件。我在第 8 行不断收到意外的“exec”(T_STRING)。感谢您的任何建议。

<?php
$zipc="-Z";
$lineup="-Y USA";
$fformat="-U";
$duration="-d 2";
$outfile="-o";
$ofile="guide.xml"
exec("perl http://www.myserver.com/myperl.pl" $zipc $_GET['zipc'] $lineup $fformat $duration           $outfile "http://www.myserver.com/myfile.xml");
print"FINALLY GOT TO END";
?>

编辑: 好吧,我以为一切都解决了。现在我收到以下错误: 致命错误:只能传递变量

根据我托管脚本的技术支持人员的说法,我必须重写包含 exec 的代码行,以免打开连接。有点不知所措。有什么建议吗?

编辑 2: 问题在于数组。据我了解,不能如答案所示传递数组而不产生错误。为了解决这个问题,我将变量和 $_GET 连接到一个变量中。似乎解决了这个问题。

【问题讨论】:

    标签: php syntax exec


    【解决方案1】:

    the exec() function 的第二个参数是 array。您的代码中有多个语法错误,因为您只是列出了一堆变量而没有将它们放入数组中。

    即使exec() 确实采用了一长串参数,它没有,您的代码仍然无法工作,因为您没有用逗号分隔它们。

    这应该可行(注意第 7 行和第 8 行的更改):

    <?php
    $zipc="-Z";
    $lineup="-Y USA";
    $fformat="-U";
    $duration="-d 2";
    $outfile="-o";
    $ofile="guide.xml";
    exec("perl http://www.myserver.com/myperl.pl", array($zipc, $_GET['zipc'], $lineup, $fformat, $duration, $outfile, "http://www.myserver.com/myfile.xml"));
    print"FINALLY GOT TO END";
    

    【讨论】:

    • 我收到 Parse 错误:语法错误,意外的 'exec' (T_STRING) 第 8 行。
    • 我刚刚注意到您在第 7 行缺少一个分号。这已在我的回答中得到纠正。
    • 啊,好的,我会检查一下,看看是否有帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-28
    • 1970-01-01
    • 1970-01-01
    • 2011-10-02
    • 2020-11-10
    • 1970-01-01
    • 2011-07-25
    相关资源
    最近更新 更多