0

以下のコードは、1、2、3、4 というように、すべてのファイルを一度に作成します。

$i = 0;
while($i < $pages)
{
    $met = $this->articles();
    $myFile = trim($met.".php");

    $fh = fopen($myFile, 'w') or die("Can't create files.");
    $stringData = "<html><head><meta name=\"description\" content=\"" . $met. "\" />
                   <meta name=\"keywords\" content=\"" . $met . "\" /><h1>" . $met . "</h1>
                   <base href='http://gumpic.com/'>".$this->show_web("http://gumpic.com")."</html>";
    fwrite($fh, $stringData);
    fclose($fh);
    $i++;
}

echo "We've created your " . $pages . " pages.";

ページを読み込んで、どのページが完成したページに印刷したらよいでしょうか?お気に入り;

  1. 完了
  2. 完了
  3. 完了
  4. 保留中

また、このスクリプトを高速化できる方法はありますか。非常に遅く、約 3 分で 2k ファイルしか作成されず、内部エラーが発生します。

4

3 に答える 3

0

このスクリプトの速度は、主にハード ドライブの速度に依存します。また、OS が開くアクセスと書き込みアクセスをどれだけ適切に処理するか。

進行状況を表示したい場合はecho("Processing ".$i."\n");whileループに を含め、 でバッファをフラッシュしflush()ます。echo str_repeat(" ", 1024), "\n";大量のデータを待たずにブラウザにコンテンツを表示させるには、スクリプトの開始時に必ず送信してください。

スクリプトの処理時間を長くするために使用set_time_limit()します。

于 2012-09-05T11:23:58.897 に答える
0

毎回出力を割り当てて連鎖させるとパフォーマンスが低下するため、何らかのテンプレート言語の使用を検討してください。

いくつかの良いライブラリは次のとおりです。

  • 小枝[私のいつものピック];
  • スマート;
  • TI [純粋な PHP、小規模な目的のための一握り];

まだ行っていない場合は、コマンド ライン ツールの作成を検討してください。コンソールへのエコーは、画面への書き込みよりも高速です。

于 2012-09-05T11:26:04.093 に答える
0
ob_start();
$i = 0;
while($i < $pages)
{
    $met = $this->articles();
    $myFile = trim($met.".php");

    $fh = fopen($myFile, 'w') or die("Can't create files.");
    $stringData = '<html>
                    <head>
                        <meta name="description" content="' . $met. '" />
                        <meta name="keywords" content="' . $met . '" />
                    </head>
                    <body>     
                    <h1>"' . $met . '"</h1>
                   <base href="http://gumpic.com/">'.$this->show_web("http://gumpic.com").'</body>
                  </html>';
    fwrite($fh, $stringData);
    fclose($fh);
    echo 'Created page ' . ($i+1) . '<br/>';
    flush();
    ob_flush();
    $i++;
}

echo "Done generating " . $i . "pages.";
于 2012-09-05T11:31:33.263 に答える