我一直在尝试这样做:
$handle = popen('php -q nah.php?part='. $part . ' 2>&1', 'r');
while (!feof($handle))
{
$read = fread($handle, 2096);
echo $read;
}
pclose($handle);
我想做的是我想传递一些值到文件nah.php,但当我尝试这样做,我得到一个错误这:
无法打开输入文件:nah.php?部分=说:
我该怎么做呢?
我用的是php-cli
在命令行中使用,PHP不接受GET参数,而是接受命令行参数,例如:
php -q nah.php -p='name of part'
然后可以使用getopt()获取这些参数的值:
$options = getopt("p:");
$part = $options["p"];
您试图从命令行运行PHP,但向它传递URL类型参数。
URL参数在命令行上下文中不起作用;它们被视为文件名的一部分。
参数需要像任何其他CLI程序一样以空格分隔字符串的形式传入。
在PHP程序中,您也不会在$_GET
或$_REQUEST
中获得任何内容。要处理CLI参数,需要从STDIN中读取它们。
查看这里获取更多信息:http://www.php.net/manual/en/features.commandline.php#81470