首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP执行PERL w/ PERL

PHP执行PERL w/ PERL
EN

Stack Overflow用户
提问于 2014-11-23 17:08:45
回答 1查看 85关注 0票数 0

我有下面的php脚本,它需要调用perl脚本以及参数。如果路径正确,语法是否有问题?服务器端的php和perl。php通过url接收信息($GET‘’zipc‘)。perl脚本将在服务器上生成一个xml文件。我一直在第8行收到意想不到的'exec‘(T_STRING),谢谢您的建议。

代码语言:javascript
复制
<?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连接到一个变量中。似乎解决了这个问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-23 17:51:45

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

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

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

代码语言:javascript
复制
<?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";
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27091762

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档