この記事では主に、PHP の ob キャッシュ メカニズムを使用してページの静的化を実現する方法を紹介します。編集者はこれが非常に良いものだと思ったので、皆さんの参考として今から共有します。編集者をフォローして見てみましょう。皆さんのお役に立てれば幸いです。
まず、phpのobキャッシュで一般的に使用されるいくつかの一般的な関数を紹介しましょう
ob_start(): キャッシュメカニズムをオンにする
ob_get_contents(): obキャッシュのコンテンツを取得します
ob_clean() のコンテンツをクリアしますobキャッシュ、ただしキャッシュはクローズしません
ob_end_clean() obキャッシュの内容をクリアし、キャッシュをクローズします
ob_flush キャッシュをクリアし、内容を出力しますが、キャッシュはクローズしません
ob_end_flush キャッシュをクリアします、コンテンツを出力し、キャッシュをクローズします
flush は出力を強制的に更新しますキャッシュ内のコンテンツ
httpプロトコルの規定により、レスポンスヘッダより前にレスポンスコンテンツを出力することはできません。 header() 関数の前に出力するとエラーが発生しますが、ob_start() を使用すると、応答は次のようになります。コンテンツは最初に ob キャッシュに配置され、メッセージ ヘッダーが送信される前には送信されません。これにより、問題が解決されます。 header()エラーの問題!
PHP に付属する ob キャッシュ メカニズムを使用してページの静的化を実現する方法について説明します。サンプル コードは次のとおりです。
<?php $id=$_REQUEST['id']; //判断缓存文件是否存在,如果存在,直接输出 if(file_exists('content'.$id.'.html')){ echo file_get_contents('content'.$id.'.html'); return; } //开启缓存机制 ob_start(); //到数据库中查询所需要的内容 $conn=mysql_connect("localhost","root","root"); mysql_select('db'); mysql_query('set names utf8'); $sql="select content from table_name where id=$id"; $res=mysql_query($sql); $row=mysql_fetch_assoc($res); $content=$row[0]; mysql_free_result($res); mysql_close($conn); echo $content; //将输出的内容保存到文件中,形成静态页面,在下次访问的时候,直接读取输出 file_put_contents('content'.$id.'.html',ob_get_contents()); ?>
上記のコードに示すように:
クエリするコンテンツを HTML ファイルに直接保存します。ファイルが存在する場合は間に出力、存在しない場合はデータベースにアクセスし、対応するクエリ処理を実行します
ファイルの有効期限を設定したい場合は、if文に判定条件を追加して判定することができますキャッシュ ファイルの有効期限が切れています。 time() - 設定された有効期限です。
関連する推奨事項:
以上がPHPのキャッシュ機構でページの静的コード共有を実現の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。