exec PHP没有传递参数

时间:2014-10-19 01:25:16

标签: php

我正在尝试从另一个PHP脚本中执行php脚本。我似乎无法让它正确传递参数。我做错了什么?

第一个名为

的脚本
<?php

 $item = "hello";
 $item2 = "world";
 exec("php scriptToBeExecuted.php arg1=".$item." arg2=".$item2." &"); 
?>

要执行的脚本

<?php
var_dump($argc);
if (isset($argv)) 
{
     parse_str(implode('&', array_slice($argv, 1)), $_GET);

     $item= $_GET['arg1'];
     $item2= $_GET['arg2'];;
}
else
{
   echo "not set";
}
?>

当我尝试执行此操作时,我在浏览器中没有收到任何输出。这不是主要问题,因为我使用它来进行数据库调用,但就像我说的那样,经过几个小时的烦恼,它将无法正常执行或根本无法执行

1 个答案:

答案 0 :(得分:0)

您必须将此脚本作为命令或网页运行。如果是前者,就没有$_GET之类的东西。如果是后者,则没有$argv。试试这个。

第一个名为

的脚本
<?php    
 $item = "hello";
 $item2 = "world";
 exec("php scriptToBeExecuted.php $item $item2"); 
?>

要执行的脚本

<?php
var_dump($argc);
if (count($argv) === 3) {
     $item= $argv[1];
     $item2= $argv[2];
} else {
   echo "not set";
}
?>

另见:

PHP passing $_GET in linux command prompt

$_SERVER['argv'] with HTTP GET and CLI issue