ホームページ > php教程 > php手册 > ページの staticization_php の基本に関するいくつかの一般的なメソッドを共有します

ページの staticization_php の基本に関するいくつかの一般的なメソッドを共有します

WBOY
リリース: 2016-05-16 08:59:48
オリジナル
3503 人が閲覧しました

静的 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 ページのストレージ ニーズを満たすことができます。
上記は、ページの静的化に関連する方法です。友人にとって役立つことを願っています。

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