Web サイトのコンテンツとユーザーの訪問が増加すると、帯域幅とサーバーの制限により、Web サイトの読み込みがますます遅くなるのは避けられません。同時にリクエストの数が増えるため、多くの場合、現時点では Web サイトのコードとサーバー構成を最適化する必要があります。
一般に、最適化は次の側面から行われます
現在、多くの Web サイトは構築時に静的に処理する必要があります。Web サイトを静的に処理する必要があるのはなぜですか?純粋な静的 Web サイトは、すべての Web ページが独立した HTML ページであることを誰もが知っています。アクセス速度は想像できるとおり、検索に非常に役立ちます。エンジンにもとても優しいです。
純粋な静的 Web サイトは Web サイトにどのように実装されますか?
純粋に静的な制作テクノロジでは、まず Web サイトのページを要約していくつかのスタイルに分割し、次にこれらのページをテンプレートに作成する必要があります。生成する場合は、最初にソース ファイルを読み取り、次に .html で終わる独立したページ ファイルを生成する必要があります。したがって、純粋に静的な Web サイトにはより多くのスペースが必要ですが、実際には、特に中小企業の Web サイトの場合、必要なスペースはそれほど大きくありません。技術的に言えば、大規模な Web サイトがサイト全体の純粋な静的化を実現することは比較的困難です。難しく、生成時間が長すぎます。ただし、中小規模の Web サイトでは依然として純粋に静的な比較が使用されており、これには多くの利点があります。
そして、動的 Web サイトはどのように静的に処理されるのでしょうか?
ページの静的化とは、動的ページを html/htm 静的ページに変換することを指します。動的ページは通常、管理が非常に簡単な、asp、php、jsp、.net、およびその他のプログラミング言語で記述されます。ただし、Web ページにアクセスする場合、プログラムが最初に Web ページを処理する必要があるため、アクセス速度は比較的遅くなります。静的ページはアクセスが速いですが、管理が困難です。そうすれば、静的ページと動的ページで 2 つのページの利点を組み合わせることができます。
静的処理はウェブサイトにどのようなメリットをもたらしますか?
静的処理された Web サイトは、静的処理のない Web サイトよりも安全です。ハッカーは静的ページが攻撃しにくいため、静的 Web サイトはハッカーにとって最初の攻撃対象ではないからです。同時に、データベースやウェブサイトのプログラムに問題が発生した場合でも、静的に処理されるページが妨げられず、ページが開けなくなることもありません。プログラムやデータの影響によるもの。
検索エンジンのスパイダー プログラムはそのような URL を優先するため、スパイダー プログラムの作業負荷も軽減されます。検索エンジンは動的 URL を完全にクロールして識別できるようになったと考える人もいますが、それでも動的 URL を静的にすることをお勧めします。それは静的 URL です。
ここでは主にページの静的化の概念について説明します。お役に立てれば幸いです。
HTMLの静的化とは:
ページの静的化には 2 種類あり、1 つは擬似静的、つまり URL の書き換えであり、もう 1 つは真の静的化であると言われることがよくあります。
PHP Web サイト開発では、Web サイトのプロモーションや SEO のニーズを満たすために、Web サイト全体または部分を静的に処理する必要があります。PHP で静的な HTML ページを生成するには、PHP テンプレートの使用、キャッシュ、ページの静的化を実現するためなど。
PHP 静的を簡単に理解すると、Web サイトで生成されたページを静的 HTML の形式で訪問者の前に表示することです。PHP の静的化は、純粋な静的化と疑似静的化に分けられます。 PHP によって生成される静的ページのさまざまな処理メカニズム。
PHP 擬似静的:Apache mod_rewrite を使用して URL 書き換えを実装します。
静的 HTML の利点:
1.サーバーの負荷を軽減し、システムデータベースを呼び出さずにWebを閲覧します。
2.検索エンジンの最適化 (SEO) に役立ちます。Baidu と Google は静的ページを優先的に含めます。これは、すぐに含まれるだけでなく、完全に含まれます。
3.ページを開く速度が向上します。静的ページはデータベースに接続する必要がなく、動的ページよりも大幅に高速です。4.
Web サイトはより安全です。大規模な Web サイトを見ると、HTML ページは基本的に静的ページであり、攻撃を軽減し、SQL インジェクションを防ぐことができます。データベースエラーが発生しても、Web サイトへの通常のアクセスには影響しません。5.
データベースエラーが発生しても、Webサイトへの通常のアクセスには影響しません。最も重要なことは、アクセス速度を向上させ、サーバーの負荷を軽減できることです。データ量が数万、数十万以上になると、どちらが速いのかも簡単にわかります。検索エンジンによって見つかりました。 HTML記事を生成する作業はより面倒で手順が複雑になりますが、検索の利便性、より速く、より安全にするには、これらの犠牲を払う価値があります。
基本的な方法file_put_contents() 関数PHP の組み込みキャッシュ メカニズムを使用してページの静的化を実現します — 出力バッファリング
方法 1: PHP テンプレートを使用して静的ページを生成する静的なウェブサイトを実現するには、PHP Smarty をインストールして使用するなど、PHP テンプレートの静的化を実現するのに非常に便利です。
Smarty を使用する場合、ページを静的にすることもできます。 Smarty を使用するときの通常の動的読み取り方法について簡単に説明します。
大まかに次のステップに分かれます:
1. URL を通じてパラメータ (ID) を渡します。 2. 次に、この ID に基づいてデータベースにクエリを実行します。
3. データを取得したら、必要に応じて表示内容を変更します。4. 表示するデータを割り当てます;
5. テンプレートファイルを表示します。
Smarty の静的化プロセスでは、上記のプロセスに 2 つのステップを追加するだけで済みます。
まず、1 の前に ob_start() を使用してバッファを開きます。
2 番目: 5 の後に ob_get_contents() を使用してメモリ未出力コンテンツを取得し、次に fwrite() を使用してコンテンツをターゲット HTML ファイルに書き込みます。
上記の説明によると、このプロセスは Web サイトのフロントエンドで実装されますが、コンテンツ管理 (追加、変更、削除) は通常バックグラウンドで実行されます。上記のプロセスを効果的に利用するには、次のような小さな手段を使用できます。つまり、Header() です。具体的な処理としては、プログラムを追加・修正した後、Header()を使ってフォアグラウンドにジャンプしてページをHTML化できるようにし、HTML生成後にバックグラウンド管理側に戻るという2つのジャンプを行います。プロセスは目に見えません。
リーリー
方法3: PHP出力制御機能(Output Control)/obキャッシュ機構を使用して静的ページを生成する出力制御機能(Output Control)は、静的HTMLページを生成するためにキャッシュを利用・制御するほか、PHPファイルの読み書き機能も利用します。
たとえば、特定の製品の動的な詳細ページのアドレスは次のとおりです: http://xxx.com?goods.php?gid=112そこで、このアドレスに基づいてこの詳細ページのコンテンツを読み取り、次回誰かがこの製品詳細ページの動的アドレスにアクセスしたときに、生成された対応する静的コンテンツ ファイルを直接出力できます。 。
PHP は静的ページのサンプルコード 1 を生成します
リーリー
PHP は静的ページのサンプルコード 2 を生成します
リーリー
Webサイト開発でPHPを使用する場合、実行結果はブラウザに直接出力されることが一般的ですが、PHPで静的ページを生成するには、コンテンツを取得するために出力制御機能を使用してキャッシュ領域を制御する必要があります。キャッシュ領域を取得し、静的HTMLページファイルに出力して静的Webサイトを実現します。
PHP生成静态页面的思路为:首先开启缓存,然后输出了HTML内容(你也可以通过include将HTML内容以文件形式包含进来),之后获取缓存中的内容,清空缓存后通过PHP文件读写函数将缓存内容写入到静态HTML页面文件中。
获得输出的缓存内容以生成静态HTML页面的过程需要使用三个函数:ob_start()、ob_get_contents()、ob_end_clean()。
知识点:
1、ob_start函数一般主要是用来开启缓存,注意使用ob_start之前不能有任何输出,如空格、字符等。
2、ob_get_contents函数主要用来获取缓存中的内容以字符串形式返回,注意此函数必须在ob_end_clean函数之前调用,否则获取不到缓存内容。
3、ob_end_clean函数主要是清空缓存中的内容并关闭缓存,成功则返回True,失败则返回False
方法4:使用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是键值一一对应,key默认最大不能超过128个字节,value默认大小是1M,因此1M大小满足大多数网页大小的存储。
以上就是PHP实现HTML页面静态化的方法,内容丰富,值得大家细细品味,从中得到收获。