PHP の静的化は、Web サイトで生成されたページを静的な HTML の形式で訪問者の前に表示することです。PHP の静的化は、純粋な静的化と擬似静的化に分けられます。両者の違いは処理の違いにあります。 PHP が静的ページを生成するメカニズム。純粋な静的化とは、PHP によって生成された動的ページを静的 HTML ファイルに保存することです。ユーザーは、アクセスするたびに同じ Web ページを再生成するのではなく、静的ページにアクセスするため、サーバーのオーバーヘッドが削減されます。擬似静的とは、検索エンジンによる検索を容易にするために、動的ページの URL アドレスを静的ページに似た URL アドレスに変換することを指します。
このチュートリアルの動作環境: Windows7 システム、PHP8 バージョン、DELL G3 コンピューター
PHP 静的化とは
PHP 静的の簡単な理解は、Web サイトで生成されたページを静的 HTML の形式で訪問者の前に表示することです。PHP 静的は、純粋な静的と疑似静的に分けられます。 2 つの違いは、PHP では静的ページを生成する処理メカニズムが異なることです。
純粋な静的 : PHP によって生成された動的ページを静的 HTML ファイルに保存します。ユーザーは、アクセスするたびに同じ Web ページを再生成するのではなく、静的ページにアクセスします。
利点は、サーバーのオーバーヘッドを削減できることです。
純粋な静的を細分すると、「部分的な純粋な静的」と「すべて純粋な静的」に分けることができます:
部分的な静的化: 生成された静的ファイルに部分的なデータがありますか、それとも Ajax テクノロジを通じて動的に取得されますか;
完全な静的化: つまり、データの動的な取得はありません。したがって、コンテンツは静的 HTML ページから取得されます
擬似静的: 動的ページの URL アドレスを、静的ページ
疑似静的とは、実際には動的アクセスです。その本質は、データを動的に生成することです。アクセスする URL は、「http://yourhost,com/index/post/12」に似ています。静的アドレス: このアドレスはブログ アドレスでより一般的ですが、擬似静的モードでは、アクセスした URL は実際にサーバーによって解析され、依然として「http://yourhost,com/?」のようなアドレスに解析されます。 c=index&a=post&id=12" なので、この名前が付けられます。これは、擬似静的です。
擬似静的な利点: 美しい、検索エンジンが組み込みやすい
PHP 擬似静的static: Apache mod_rewrite を使用して URL 書き換えを実装します。
Web ページを静的にする理由
1. ページを開く速度と閲覧速度を高速化します。静的なページは必要ありません。データベースに接続すると、動的ページよりも速く開くことができます。ページは大幅に改善されました。
2. 検索エンジン最適化 (SEO) に役立ちます。Baidu と Google は静的ページを優先的に含めます。迅速に含まれるだけでなく、完全に含まれます;
3. サーバーの負荷を軽減し、Web ページの閲覧にシステム データベースを呼び出す必要がなくなります;
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したがって、ここでは、このアドレスに基づいてこの詳細ページのコンテンツを 1 回読み取り、それを静的ページとして保存します。次回誰かがこの動的アドレスにアクセスしたとき、製品詳細ページでは、 生成された対応する静的コンテンツ ファイルを直接出力できます。<?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 を使用してメモリからコンテンツを読み取ります (実際には、これは静的ではなくキャッシュです);
<?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(); //输出商品详情页信息 } ?>
PHP ビデオ チュートリアル 」
以上がphpの静的とはどういう意味ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。