php从带有参数或括号的popen()引发php文件

php从带有参数或括号的popen()引发php文件,php,Php,我一直在努力做到这一点: $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?part=say: 我该

我一直在努力做到这一点:

$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?part=say:

我该怎么做


是的,我正在使用命令行中使用的所有php cli,php不接受GET参数,而是接受命令行参数,例如:

php -q nah.php -p='name of part'
然后,可以使用以下方法获取这些参数的值:


您试图从命令行运行PHP,但将URL类型参数传递给它

URL参数在命令行上下文中不起作用;它们被视为文件名的一部分

参数需要按照任何其他CLI程序作为空格分隔的字符串传入

在PHP程序中,您也不会在
$\u get
$\u REQUEST
中获得任何内容。要处理CLI参数,需要从STDIN读取它们


有关如何执行此操作的更多信息,请参见此处:

您指向
getopt()
的链接指向法语翻译。我把它编辑成了英文版。但是+1是一个很好的答案。那么在第二种情况下nah.php会是什么样子呢?@Spudley:谢谢!作为一个说法语的人,我只是没想过而已。@kritya:第二种情况是什么意思?使用getopt()我怎么才能得到通过的呢?它也是$arg吗?
$options = getopt("p:");
$part = $options["p"];