> php教程 > php手册 > 본문

페이지 staticization_php 기본의 몇 가지 일반적인 방법 공유

WBOY
풀어 주다: 2016-05-16 08:59:48
원래의
3502명이 탐색했습니다.

PHP 정적화란

PHP 정적화에 대한 간단한 이해는 웹사이트에서 생성된 페이지가 방문자 앞에 정적 HTML 형식으로 표시되도록 하는 것입니다. PHP 정적화는 순수 정적화와 의사 정적화로 구분됩니다. 두 가지의 차이점은 처리 메커니즘의 차이입니다. PHP가 정적 페이지를 생성합니다.

웹페이지를 정적으로 만드는 이유

1. 페이지 열기 및 탐색 속도가 향상됩니다. 정적 페이지는 데이터베이스에 연결할 필요가 없으며 동적 페이지보다 훨씬 빠릅니다. 2. 검색 엔진 최적화(SEO)에 유리합니다. Baidu와 Google은 신속하게 포함될 뿐만 아니라 완전히 포함되는 정적 페이지를 포함하는 데 우선순위를 둡니다.
3. 서버의 부담을 줄이고 시스템 데이터베이스를 호출하지 않고도 웹을 탐색할 수 있습니다.
4. 웹사이트는 더욱 안전해졌으며 HTML 페이지는 PHP 관련 취약점의 영향을 받지 않습니다. 대규모 웹사이트를 보면 기본적으로 정적 페이지이므로 공격을 줄이고 SQL 주입을 방지할 수 있습니다.

데이터베이스 오류가 발생하더라도 웹사이트의 정상적인 접속에는 영향을 미치지 않습니다.
HTML 문서를 생성하는 작업이 더 번거롭고 절차도 더 복잡하지만 검색을 더 편리하게 하고 더 빠르고 안전하게 하기 위해서는 이러한 희생이 여전히 가치가 있습니다.


PHP를 사용하여 정적 HTML 페이지를 생성하는 방법
PHP 템플릿을 사용하여 정적 페이지 생성

예를 들어, PHP Smarty를 설치하여 정적 웹 사이트를 구현하는 것은 매우 편리합니다. 또한 일반적인 템플릿 규칙을 사용하여 다양한 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();//输出商品详情页信息
 
}
 
&#63;>
로그인 후 복사
2. nosql을 사용하여 메모리에서 콘텐츠를 읽습니다(사실 더 이상 정적이 아니고 캐시됩니다).


Memcache를 예로 들어보겠습니다.


Memcached는 키와 값이 일대일로 대응합니다. 기본 키 크기는 128바이트를 초과할 수 없으며 기본 값 크기는 1M입니다. 따라서 1M 크기는 대부분의 웹 페이지의 저장 요구 사항을 충족할 수 있습니다.
<!--?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();//输出商品详情页信息
 
}
 
&#63;>
로그인 후 복사
위 내용은 페이지 정적화와 관련된 방법입니다. 친구들에게 도움이 되길 바랍니다

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 추천
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿