用参数或圆括号从popen()中激发一个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?部分=说:

我该怎么做呢?

我用的是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

相关内容

最新更新