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

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

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター