ホームページ  >  記事  >  php教程  >  PHPを使用してWebサイト全体からHTMLの純粋な静的Webページを生成する方法のまとめ

PHPを使用してWebサイト全体からHTMLの純粋な静的Webページを生成する方法のまとめ

高洛峰
高洛峰オリジナル
2018-05-14 14:41:317892ブラウズ

<?php 
//在你的开始处加入 ob_start(); 
ob_start(); 

//以下是你的代码 
//在结尾加入 ob_end_clean(),并把本页输出到一个变量中 
$temp = ob_get_contents(); 
ob_end_clean(); 

//写入文件 
$fp = fopen(‘文件名&#39;,&#39;w&#39;); 
fwrite($fp,$temp) or die(‘写文件错误&#39;); 
?>

これは最も基本的な方法であり、あまり実用的ではありません。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&#39;,&#39;w&#39;); 
fwrite($fp,$temp) or die(‘写文件错误&#39;); 

//重新导向 
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 サイトに注目してください。

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