<?php //在你的开始处加入 ob_start(); ob_start(); //以下是你的代码 //在结尾加入 ob_end_clean(),并把本页输出到一个变量中 $temp = ob_get_contents(); ob_end_clean(); //写入文件 $fp = fopen(‘文件名','w'); fwrite($fp,$temp) or die(‘写文件错误'); ?>
これは最も基本的な方法であり、あまり実用的ではありません。Web サイトを更新する必要があり、HTML を定期的に再生成する必要があるためです
以下は私が使用する方法です:
if(file_exists(“xxx.html”)) { $time = time(); //文件修改时间和现在时间相差半小时一下的话,直接导向html文件,否则重新生成html if($time - filemtime(“xxx.html”) < 30*60) { header(“Location:xxx.html”); } } //在你的开始处加入 ob_start(); ob_start(); //页面的详细内容 //在结尾加入 ob_end_clean(),并把本页输出到一个变量中 $temp = ob_get_contents(); ob_end_clean(); //写入文件 $fp = fopen(‘xxx.html','w'); fwrite($fp,$temp) or die(‘写文件错误'); //重新导向 header(“Location:xxx.html”);
以下は、使用されるいくつかの関数の紹介です:
1. フラッシュ: バッファーと出力の内容を更新します。
関数形式: flash()
説明: この関数は頻繁に使用され、非常に効率的です。
2. ob_start: 出力バッファを開きます。
関数形式: void ob_start(void)
説明: バッファがアクティブ化されると、PHP プログラムからのファイル以外のヘッダー情報はすべて送信されず、内部バッファーに保存されます。 。バッファの内容を出力するには、ob_end_flush() または flash() を使用してバッファの内容を出力します。
3、ob_get_contents: 内部バッファの内容を返します。
使用法: string ob_get_contents(void)
説明: この関数は、出力バッファがアクティブ化されていない場合、現在のバッファの内容を返します。
4. ob_get_length: 内部バッファーの長さを返します。
使用法: int ob_get_length(void)
説明: この関数は、出力バッファーがアクティブ化されていない場合、ob_get_contents と同様に現在のバッファーの長さを返します。その後、FALSE を返します。
5. ob_end_flush: 内部バッファの内容をブラウザに送信し、出力バッファを閉じます。
使用法: void ob_end_flush(void)
説明: この関数は、出力バッファーの内容 (存在する場合) を送信します。
6. ob_end_clean: 内部バッファの内容を削除し、内部バッファを閉じます。
使用法: void ob_end_clean(void)
説明: この関数は内部バッファの内容を出力するのではなく、内部バッファを削除します。
7. ob_implicit_flush: 絶対リフレッシュをオンまたはオフにします。
使用方法: void ob_implicit_flush ([int flag])
注: Perl を使用したことがある人なら、この文字列は $|=x の意味を知っています。 ob_implicit_flush 関数は、その関数と同じです。デフォルトでは、絶対出力をオンにした後、各スクリプト出力はブラウザーに直接送信され、flush() を呼び出す必要はありません。 Web サイト全体の HTML の純粋な静的 Web ページを生成します。その方法をまとめた関連記事については、PHP 中国語 Web サイトに注目してください。