2011-07-20 3 views
1

私は私のメインのファイルでこれをやっていることは私が欲しいものindex.phpphp cli popen()は一度ファイルをインクルードしますか?

$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でそれを含めてのクラスの数を含むファイルが含まいけないということです.phpはwhileループを使用して呼び出されます。nah.phpに含めると、少し遅くなります。

可能ですか?

+0

あなたの質問を言い換えてください。 – wonk0

+0

@ wonk0私はメインファイルにファイルを含めたいが、そのファイルによって誘発されたファイルには入れない。 – kritya

+0

@kritya:_'a bit'_を定義するのは、それがクラス/関数ファイルの場合、特にオートロードされている場合は、数ミリ秒の間、多くの努力をしていると思います。 – Wrikken

答えて

0

あなたはPHPはCLIモードにあるとき、あなたは、そうでない場合はnah.phpに含まれるファイルを含めたくない、と言っている場合:

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

は、そうでない場合は...ちょうどありませんファイルを含める...?

+0

いいえ。私はすべてのファイルを一度だけ含めたいですし、popenによって誘発されたファイルには含めません。 – kritya

0

これはpcntl_forkです(CLIの場合は、さまざまな理由でWebサーバーで実行しないでください)。すべてのクラス/関数定義を一度ロードするだけで済みます(ただし、リソースをまだ開かないでください。たとえば、子プロセスでデータベース接続を開く必要があります)。データを取得する作業はもう少しですが、それほど難しいことではありません。しかし、私はあなたが大きなスピードを得ることはないと思う...

+0

コードしてください。 :D – kritya