PHP命令行popen()包含文件一次


php cli popen() include file once?

我在我的主文件中这样做比如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它会慢一点。

有可能吗?

如果您这样说,当PHP处于CLI模式时,您不想包含nah.php包含的文件,请执行:

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

否则……只是不要包括文件…div ?

或者选择pcntl_fork(如果这是在CLI中,出于各种原因不要在web服务器中这样做)。您只需要加载所有类/函数定义一次(但还不打开资源,例如,应该在子进程中打开数据库连接)。获取数据需要做更多的工作,但并不十分困难。我不认为你会得到任何显著的速度提升,但是…