php教程 php手册 페이지 staticization_php 기본의 몇 가지 일반적인 방법 공유

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

May 16, 2016 am 08:59 AM
정적 페이지

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;>
로그인 후 복사
위 내용은 페이지 정적화와 관련된 방법입니다. 친구들에게 도움이 되길 바랍니다

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 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 Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)