php cli popen()包含文件一次?

时间:2011-07-20 15:20:34

标签: php

我在主文件中执行此操作,请说index.php

$handle = popen("php -q nah.php -p=". escapeshellarg($part) . " 2>&1", "r");
while (!feof($handle))
{
    $read = fread($handle, 2096);
    echo $read;
}
pclose($handle);

我想要的是我不包含nah.php中包含许多类的文件而不包括在nah.php中的文件因为nah.php使用while循环激活所以如果我包含在它在nah.php中会慢一点。

有可能吗?

2 个答案:

答案 0 :(得分:0)

如果您这样说,虽然PHP处于CLI模式,但您不希望包含nah.php包含的文件,请执行以下操作:

if (php_sapi_name() !== 'cli')
{
  // include files here
}

否则......只是不包含文件......?

答案 1 :(得分:0)

或者为pcntl_fork选择此项(如果是在CLI中,请不要出于各种原因在网络服务器中执行此操作)。您只需加载所有类/函数定义一次(但不要打开资源,例如,应在子代中打开数据库连接)。然后获取数据需要更多的工作,但并不是非常困难。我不认为你会获得任何显着的速度提升......