静的なページを実装し、PHPがどのように達成することですか?

サイトのコンテンツの増加やユーザアクセスの量を増やすと、必然的には、サイトの負荷が、遅くなった要求の数を制限すると同時に、帯域幅やサーバーによって制限され、私たちはしばしば私たちのために、この時点で必要ウェブサイトのコードの最適化とサーバー構成の最適化。

我々は、次の一般的なものから最適化を行います

1、動的な静的なページ

図2に示すように、データベースを最適化します

3、負荷分散を使用して

4、キャッシュを使用して

5、加速するCDNを使用して

サイトでの純粋な静的なウェブサイトがどのように達成することですか?
純粋に静的な生産技術をまとめたサイトの最初のページに要求され、スタイルの数に分割され、その後、これらのページはテンプレートを作りました。

その後、ソースファイルを読み込むとする必要が純粋な静的なWebサイトは、より多くのスペースを必要とするので、こと、.htmlので終わる別のページ・ファイルを生成する際に生成、実際に必要とされるスペースは、特に中小企業のために、はるかに大きくなりませんウェブサイトは、技術的には駅の大規模なサイトは、純粋な静的を達成したい、話すことはあまりにも長い時間で、その結果、より困難です。しかし、中小のサイトは比較的純粋な静的で構成され、そうすることの利点は多いです。

 

動的なウェブサイトがどのように静的なプロセスでありますか?
静的ページのHTML / HTM静的なページとなって動的ページを指します。動的なページは、一般的にASP、PHP、JSP、.NETおよび他のプログラミング言語で書かれているが非常に簡単に管理するために作られています。しかし、プログラムはまた、比較的遅いアクセス速度が得られ、再びウェブ最初の契約にアクセスするために必要な。静的なページのアクセス速度が、管理が容易ではありません。一緒にページの2種類の利点に焦点を合わせることができるので、動的、静的なページ。

 

利益をもたらすために処理した後の静的なサイト?

動的ページに対する1、静的ページをより容易に検索エンジンによってインデックス付け。

2、静的ファイルを処理する手続きをする必要はありません、動作速度を向上させることが可能です。

3、サーバーの負担を軽減します。

4、ASP-関連の脆弱性に影響を与えることなく、HTMLページが影響を受けます。

治療は比較的静的なウェブサイトサイトは静的で、あなたのバックエンドシステムを知らなくても、ハッカーので、フロントデスクの静的からハッカーハッカーのための好ましい標的であるされていないためにも、より多くのセキュリティを持って処理するサイトの点では静的ではありません攻撃が困難ページ。また、そのような質問のうち、データベースやWebサイトのプログラムなどの特定の安定性を、持っている彼は、静的な処理後のページに干渉しないだろう、それはプログラムやデータは、ページを開くことができません影響しません。

一部の人々は、検索エンジンは現在、グラブする能力を持っており、完全に我々が静的を作ることができることが推奨され、動的URLを認識だと思うが、検索エンジンのスパイダーは、このURLを好む、それはまた、負担のクモを軽減することができます静的なURLを作成してみてください。

 

ここでは、主に静的なページの概念について話、私はあなたの助けを願っています!

HTMLの静的は何ですか。

多くの場合、静的なページは、二つのタイプに分けられていること、一方が言った擬似静的書き換え、すなわちURL、一方が本当に静的
ウェブサイトのプロモーションやSEOや他のニーズのために、PHPのWeb開発中またはステーションのローカル静的治療におけるサイトの必要性は、PHPは静的なページを達成キャッシングなどPHPテンプレートの使用など多数の方法が存在する静的なHTMLページを生成します。
PHPの静的な簡単な理解は、純粋な静的および擬似静的、サイトは訪問者の目の前でフォームを表示するには、静的なHTMLページを生成するPHPの静的なポイントで、違いはPHPが異なるハンドリング機構の静的なページを生成することです。
PHPの擬似静的:使用Apacheのmod_rewriteのURLの実装方法を書き換えます。

 

HTMLの静的のメリット

まず、システムのデータベースを呼び出すことなく、ウェブを閲覧し、サーバーの負担を軽減します。
第二には、Googleが高速でもフル含まに含まれていないだけで、静的なページの集合を優先させて頂きます、エンジン最適化のSEO、Baiduの検索に資するあり、
第三に、ページアップスピード速い動的なページよりも開いているデータベースに接続しなくても、スピード、静的なページを開くには、大幅に改善されている。
4は、大きなサイトを見て、すべて基本的に静的なページですが、また攻撃、反SQLインジェクションを減らすことができ、より安全なサイト、HTMLページが影響を受けたPHPプログラム関連の脆弱性ではありません。ときにデータベースエラーがサイトへの通常のアクセスには影響しません。
第五には、ときに、データベース・エラーは、サイトへの通常のアクセスには影響しません。
最も重要なのは、アクセス速度は、データの量が数万を持っている場合、サーバーの負担を軽減、増加した数十万人以上のあなたが高速であるかを知るとき。そして、また、簡単に検索エンジンで見つけることができるです。いくつかのトラブルに操作生成されたHTML文書が、手続きが複雑、しかし、順序でより助長し、より高速化するために、より安全に検索するために、これらの犠牲の価値があります。

 

:説明するために、静的なHTML戦略と例を実現する
基本的な方法の
ますfile_put_contents()関数を 
-output-bufferring静的なページを達成するために、組み込みのキャッシュメカニズムPHPを使用しました。

方法1:静的なページを生成するPHPのテンプレートを使用します

PHPテンプレートは、PHPのSmartyは、静的なWebサイトを実現インストールして使用するなど、静的を実装するのは非常に簡単です。
Smartyの場合には、あなたはまた、静的なページを実装することができます。ダイナミックが読んSmartyの恒例の使用については、次の簡単にトーク。 
この一般手順に分けられる:
1、URL引数(ID)を通過させ;
2、及びデータベースを照会し、このIDに基づいて、
図3に示すように、表示内容を変更するために必要なデータを取得した後、
図4、データはASSIGNを要する;
5、表示テンプレートファイル。 。
Smartyの静的処理は、上述した処理を追加するだけの2つのステップを必要とします。
まず:1 ob_start()を使用する前にオープンバッファー。
第二:5 ob_get_contents後の使用は()(メモリが出力されません取得し、その後、fwriteのを使用する)は、ターゲットhtmlファイルに内容を書き込みます。
上記の説明によると、このプロセスは、Webフロントに実装され、コンテンツ管理(削除、改変、追加)バックグラウンドで通常は、効果的に上記の手順を使用するために、あなたは小さなツールヘッダー()それを使用することができます。具体的なプロセスは次の通りさ:追加、ヘッダーを使用して、プログラムの完了後、変更は()これは、HTMLページの達成、その後、当時生成されたHTML管理者の側にジャンプすることができ、ジャンプレセプションを読み込み、これら2つのプロセスがジャンプそれは表示されません。

方法2:使用PHPファイルの読み込みと書き込み機能は、静的なページを生成します

$out1 = "<html><head><title>PHP网站静态化教程</title></head><body>欢迎访问PHP网站开发www.startphp.cn,本文主要介绍PHP网站页面静态化的方法</body></html>";

$fp = fopen("leapsoulcn.html","w");

if(!$fp) {

  echo "System Error";

  exit();

} else {

  fwrite($fp,$out1);

  fclose($fp);

  echo "Success";

}

方法3:静的なページ生成のためのPHPを使用した出力制御機能(出力制御)/ OBキャッシングメカニズム
出力制御機能(出力制御)を使用して、静的なHTMLページを生成するキャッシュ制御されている、PHPはファイルの読み取りと書き込みの機能を使用します。
http://xxx.com?goods.php?gid=112:例えば、ダイナミックの製品は、ページアドレスがある詳細
今回は、このアドレスに基づいて、この物語のページを読んで、その後、静的なページで、次の時間誰かとして保存しますこの製品の詳細ページの動的なアドレスにアクセスするとき、私たちは直接、静的なコンテンツファイルアウト出力生成良いに対応させることができます。

静的なページを生成するためにPHPのコード例1 ob_start();  echo "<html>".

"<head>".

"<title>PHP网站静态化教程</title>".

"</head>".

"<body>欢迎访问脚本之家,本文主要介绍PHP网站页面静态化的方法</body>".

"</html>";

$out1 = ob_get_contents();

ob_end_clean();

$fp = fopen("leapsoulcn.html","w");

if(!$fp) {

   echo "System Error";

   exit();

} else {

   fwrite($fp,$out1);

   fclose($fp);

  echo "Success";

}

静的なページを生成するPHPのコード例2$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();//输出商品详情页信息

}

私たちは知っているツアーに直接PHPのWeb開発、一般の実行結果の出力を使用している、PHPを使用して静的なページを生成するために、あなたは、静的なHTMLページファイルへのバッファの内容を、その後、出力を得るために、バッファゾーンを制御する出力制御機能を使用する必要があります静的なWebサイトを実現するためです。

アイデアの静的なページを生成するPHP:最初の空のPHPファイルを介してキャッシュの内容、キャッシュの読み取りと書き込みの機能を得た後、(あなたはまた、HTMLコンテンツが含まれ経由でファイルの形式で提供されます含めることができます)HTMLコンテンツをキャッシュを開き、出力キャッシュの内容は、静的なHTMLページファイルに書き込まれます。
静的なHTMLページを生成するために、出力キャッシュの内容を取得するプロセスは、次の3つの機能を使用する必要がありますのob_start()、ob_get_contents() ob_end_cleanを、()。


知識ポイント:
1は、一般のob_start機能は、主のob_start使用前など、スペース、文字、などの任意の出力を、持っていないように注意して、キャッシュを開くために使用されます。
2は、ob_get_contents機能は主に、この関数はそれ以外の場合は、キャッシュされたコンテンツを取得していない、ob_end_clean関数の前に呼び出されなければならないことを文字列として返さキャッシュ、ノートの内容を取得するために使用されます。
図3は、ob_end_clean主な機能は、キャッシュの内容を空にして、失敗した場合はFalseキャッシング、成功、trueを返しますが、オフにすることである
方法4:使用してメモリから読み出さのNoSQL(実際には、これはすでに、静的ではなく、キャッシュではありません)。
へmemcacheの例:

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の一つの鍵一つである、キーのデフォルトの最大値は128バイトを超えることができない、値のデフォルトサイズは、したがって、1M、1Mおよび貯蔵のほとんどのページ・サイズの大きさです。

公開された172元の記事 ウォン称賛45 ビュー40000 +

おすすめ

転載: blog.csdn.net/fish_study_csdn/article/details/103591192