ホームページ  >  記事  >  php教程  >  PHP は Web サイト全体の静的 HTML を生成します

PHP は Web サイト全体の静的 HTML を生成します

WBOY
WBOYオリジナル
2016-06-21 08:55:471149ブラウズ

インターネット上で、動的 Web サイト全体を静的にする方法を尋ねている人をよく見かけます。実際、実装方法は非常に簡単です。

// ob_start() を先頭に追加します
ob_start();
// 以下はコードです
//最後にob_end_clean()を追加し、このページを変数
に出力します $temp = ob_get_contents(); ob_end_clean();
// ファイルに書き込み
$fp = fopen('ファイル名','w'); fwrite($fp,$temp) または die(‘ファイル書き込みエラー’); ?>




これは最も基本的な方法にすぎず、Web サイトを更新し、HTML を定期的に再生成する必要があるため、あまり実用的ではありません

私が使用する方法は次のとおりです:



if(file_exists("xxx.html"))
{
$time = time();

                                                        // ファイル変更時刻が現在時刻と 30 分未満の差であれば、HTML ファイルに転送されます。それ以外の場合は、HTML が再生成されます

If($time - filemtime("xxx.html") {
header("場所:xxx.html");
}
}
// ob_start() を先頭に追加します
ob_start();
//ページの詳細
//最後にob_end_clean()を追加し、このページを変数
に出力します $temp = ob_get_contents(); ob_end_clean();
// ファイルに書き込み
$fp = fopen('xxx.html','w'); fwrite($fp,$temp) または die(‘ファイル書き込みエラー’);
//リダイレクト
header("場所: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)

説明: この関数は、出力バッファがアクティブ化されていない場合、現在のバッファの内容を返します。FALSE を返します。
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 の意味を知っています。この文字列はバッファをオープン/クローズできます。デフォルトでは、各スクリプトは絶対出力をオンにした後にバッファをクローズします。出力はブラウザに直接送信され、flush()
を呼び出す必要はありません。








声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。