静的 php とは
php の静的化を簡単に理解すると、web サイトで生成されたページを静的 html の形式で訪問者の前に表示することです。php の静的化は、純粋な静的化と擬似静的化に分けられます。この 2 つの違いは、静的静的化の処理メカニズムが異なることにあります。 php を使用して静的ページを生成します。
web ページを静的にする理由
1. ページを開く速度と閲覧速度を高速化します。静的ページはデータベースに接続する必要がなく、動的ページよりも大幅に高速です。
2. 検索エンジン最適化 (seo) に役立ちます。baidu と google は、静的ページを優先的に含めます。静的ページは、すぐに含まれるだけでなく、完全に含まれます。
3. サーバーの負担を軽減し、システムデータベースを呼び出さずにウェブを閲覧できます。
4. web サイトはより安全であり、html ページは php 関連の脆弱性の影響を受けません。大規模な web サイトを見ると、それらは基本的に静的なページであり、攻撃を軽減し、sql インジェクションを防ぐことができます。
データベースエラーが発生しても、web サイトへの通常のアクセスには影響しません。
html 記事の生成は操作が面倒で手順が複雑ですが、検索の利便性、高速性、安全性を高めるためには、こうした犠牲を払う価値があります。
php で静的 html ページを生成する方法
php テンプレートを使用して静的ページを生成
php テンプレートの静的化を実現すると非常に便利です。たとえば、php smarty をインストールして使用すると、静的な web サイトを実現できます。また、独自のテンプレート解析ルールのセットを作成することもできます。共通のテンプレート ルールは、さまざまな cms テンプレートを模倣できます。
1. phpファイルの読み書き機能とobキャッシュ機構を利用して静的ページを生成
たとえば、製品の動的な詳細ページのアドレスは次のとおりです: http://xxx.com?goods.php?gid=112
ここでは、このアドレスに基づいてこの詳細ページのコンテンツを読み取り、静的ページとして保存します。次回誰かがこの商品詳細ページの動的アドレスにアクセスしたときに、
生成された対応する静的コンテンツファイルを直接出力します。
<!--?php $gid = $_get['gid']+0;//商品id $goods_statis_file = "goods_file_".$gid.".html";//对应静态页文件 $expr = 3600*24*10;//静态文件有效期,十天 if(file_exists($goods_statis_file)){ $file_ctime =filectime($goods_statis_file);//文件创建时间 if($file_ctime+$expr-->time()){//如果没过期 echo file_get_contents($goods_statis_file);//输出静态文件内容 exit; }else{//如果已过期 unlink($goods_statis_file);//删除过期的静态页文件 ob_start(); //从数据库读取数据,并赋值给相关变量 //include ("xxx.html");//加载对应的商品详情页模板 $content = ob_get_contents();//把详情页内容赋值给$content变量 file_put_contents($goods_statis_file,$content);//写入内容到对应静态文件中 ob_end_flush();//输出商品详情页信息 } }else{ ob_start(); //从数据库读取数据,并赋值给相关变量 //include ("xxx.html");//加载对应的商品详情页模板 $content = ob_get_contents();//把详情页内容赋值给$content变量 file_put_contents($goods_statis_file,$content);//写入内容到对应静态文件中 ob_end_flush();//输出商品详情页信息 } ?>
2. nosql を使用してメモリからコンテンツを読み取ります (実際、これは静的ではなくキャッシュされています)。
memcache を例に挙げます。
<!--?php $gid = $_GET['gid']+0;//商品id $goods_statis_content = "goods_content_".$gid;//对应键 $expr = 3600*24*10;//有效期,十天 $mem = new Memcache; $mem--->connect('memcache_host', 11211); $mem_goods_content = $mem->get($goods_statis_content); if($mem_goods_content){ echo $mem_goods_content; }else{ ob_start(); //从数据库读取数据,并赋值给相关变量 //include ("xxx.html");//加载对应的商品详情页模板 $content = ob_get_contents();//把详情页内容赋值给$content变量 $mem->add($goods_statis_content,$content, false, $expr); ob_end_flush();//输出商品详情页信息 } ?>
memcached では、キーと値の間に 1 対 1 の対応関係があります。デフォルトのキー サイズは 128 バイトを超えることはできず、デフォルト値のサイズは 1m です。したがって、1m サイズはほとんどの web ページのストレージ ニーズを満たすことができます。
上記は、ページの静的化に関連する方法です。友人にとって役立つことを願っています。