我有下面的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连接到一个变量中。似乎解决了这个问题。
发布于 2014-11-23 17:51:45
exec()函数的第二个参数是数组。代码中有多个语法错误,因为您只是列出了一组变量,而没有将它们放在数组中。
即使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";https://stackoverflow.com/questions/27091762
复制相似问题