ホームページ > バックエンド開発 > PHPチュートリアル > PHPのキャッシュ機構でページの静的コード共有を実現

PHPのキャッシュ機構でページの静的コード共有を実現

小云云
リリース: 2023-03-20 06:32:01
オリジナル
1543 人が閲覧しました

この記事では主に、PHP の ob キャッシュ メカニズムを使用してページの静的化を実現する方法を紹介します。編集者はこれが非常に良いものだと思ったので、皆さんの参考として今から共有します。編集者をフォローして見てみましょう。皆さんのお役に立てれば幸いです。

まず、phpのobキャッシュで一般的に使用されるいくつかの一般的な関数を紹介しましょう

ob_start(): キャッシュメカニズムをオンにする

ob_g​​et_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[&#39;id&#39;];
    
    //判断缓存文件是否存在,如果存在,直接输出
    if(file_exists(&#39;content&#39;.$id.&#39;.html&#39;)){
      echo file_get_contents(&#39;content&#39;.$id.&#39;.html&#39;);
      return;
    }
    
    //开启缓存机制
    ob_start();
    
    //到数据库中查询所需要的内容
    $conn=mysql_connect("localhost","root","root");
    mysql_select(&#39;db&#39;);
    mysql_query(&#39;set names utf8&#39;);
    
    $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(&#39;content&#39;.$id.&#39;.html&#39;,ob_get_contents());


?>
ログイン後にコピー

上記のコードに示すように:

クエリするコンテンツを HTML ファイルに直接保存します。ファイルが存在する場合は間に出力、存在しない場合はデータベースにアクセスし、対応するクエリ処理を実行します

ファイルの有効期限を設定したい場合は、if文に判定条件を追加して判定することができますキャッシュ ファイルの有効期限が切れています。 time() - 設定された有効期限です。

関連する推奨事項:

PHPページの静的化例の共有

ThinkPHP3.2.3ページの静的化実装方法

PHPページの静的化実装のいくつかの共有

以上がPHPのキャッシュ機構でページの静的コード共有を実現の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート