백엔드 개발 PHP 튜토리얼 페이지 정적화의 몇 가지 일반적인 방법을 숙지하세요

페이지 정적화의 몇 가지 일반적인 방법을 숙지하세요

Aug 08, 2016 am 09:31 AM
content file php

페이지 정적화에는 두 가지 유형이 있다고 흔히 알려져 있는데, 하나는 의사 정적, 즉 URL 재작성이고 다른 하나는 진정한 정적화입니다. 진정한 정적화에 집중해 봅시다.

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
따라서 여기서는 이 주소를 기반으로 이 세부정보 페이지의 내용을 읽은 다음 이를 정적 페이지로 저장합니다. 다음에 누군가가 이 제품 세부정보 페이지의 동적 주소를 방문하면
생성된 해당 정적 콘텐츠 파일을 직접 출력합니다.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

&lt;!--?<span>php

</span><span>$gid</span>  = <span>$_GET</span>['gid']+0;<span>//</span><span>商品id</span>

<span>$goods_statis_file</span> = "goods_file_".<span>$gid</span>.".html";<span>//</span><span>对应静态页文件</span>

<span>$expr</span> = 3600*24*10;<span>//</span><span>静态文件有效期,十天</span>

<span>if</span>(<span>file_exists</span>(<span>$goods_statis_file</span><span>)){

      </span><span>$file_ctime</span> =<span>filectime</span>(<span>$goods_statis_file</span>);<span>//</span><span>文件创建时间 </span>

      <span>if</span>(<span>$file_ctime</span>+<span>$expr</span>--&gt;<span>time</span>()){<span>//</span><span>如果没过期</span>

         <span>echo</span> <span>file_get_contents</span>(<span>$goods_statis_file</span>);<span>//</span><span>输出静态文件内容</span>

         <span>exit</span><span>;

      }</span><span>else</span>{<span>//</span><span>如果已过期</span>

            <span>unlink</span>(<span>$goods_statis_file</span>);<span>//</span><span>删除过期的静态页文件</span>

            <span>ob_start</span><span>();

 

            </span><span>//</span><span>从数据库读取数据,并赋值给相关变量

 

            //include ("xxx.html");//加载对应的商品详情页模板</span>

 

            <span>$content</span> = <span>ob_get_contents</span>();<span>//</span><span>把详情页内容赋值给$content变量</span>

            <span>file_put_contents</span>(<span>$goods_statis_file</span>,<span>$content</span>);<span>//</span><span>写入内容到对应静态文件中</span>

            <span>ob_end_flush</span>();<span>//</span><span>输出商品详情页信息</span>

<span>      }

}</span><span>else</span><span>{

  </span><span>ob_start</span><span>();

 

  </span><span>//</span><span>从数据库读取数据,并赋值给相关变量

 

  //include ("xxx.html");//加载对应的商品详情页模板</span>

 

  <span>$content</span> = <span>ob_get_contents</span>();<span>//</span><span>把详情页内容赋值给$content变量</span>

  <span>file_put_contents</span>(<span>$goods_statis_file</span>,<span>$content</span>);<span>//</span><span>写入内容到对应静态文件中</span>

  <span>ob_end_flush</span>();<span>//</span><span>输出商品详情页信息</span>

<span>

}

 

</span>?&gt;

로그인 후 복사

2. nosql을 사용하여 메모리에서 콘텐츠를 읽습니다(사실 더 이상 정적이 아니고 캐시됩니다).

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

&lt;!--?<span>php

</span><span>$gid</span>  = <span>$_GET</span>['gid']+0;<span>//</span><span>商品id</span>

<span>$goods_statis_content</span> = "goods_content_".<span>$gid</span>;<span>//</span><span>对应键</span>

<span>$expr</span> = 3600*24*10;<span>//</span><span>有效期,十天</span>

 

<span>$mem</span> = <span>new</span><span> Memcache;

</span><span>$mem</span>---&gt;connect('memcache_host', 11211<span>);

 

</span><span>$mem_goods_content</span> = <span>$mem</span>-&gt;get(<span>$goods_statis_content</span><span>);

 

 

 

</span><span>if</span>(<span>$mem_goods_content</span><span>){

      </span><span>echo</span> <span>$mem_goods_content</span><span>;

}</span><span>else</span><span>{

  </span><span>ob_start</span><span>();

 

  </span><span>//</span><span>从数据库读取数据,并赋值给相关变量

 

  //include ("xxx.html");//加载对应的商品详情页模板</span>

 

  <span>$content</span> = <span>ob_get_contents</span>();<span>//</span><span>把详情页内容赋值给$content变量</span>

  <span>$mem</span>-&gt;add(<span>$goods_statis_content</span>,<span>$content</span>, <span>false</span>, <span>$expr</span><span>);

  </span><span>ob_end_flush</span>();<span>//</span><span>输出商品详情页信息</span>

<span>

}

 

</span>?&gt;

로그인 후 복사
Memcached는 키와 값이 일대일로 대응합니다. 기본 키 크기는 128바이트를 초과할 수 없으며 기본 값 크기는 1M입니다. 따라서 1M 크기는 대부분의 웹 페이지의 저장 요구 사항을 충족할 수 있습니다.

위 내용은 페이지 정적화와 관련된 방법입니다. 친구들에게 도움이 되길 바랍니다

우수한 기술 기사는 매일 www.phpskill.com에 업데이트됩니다
PHP 순수 기술 학습 교류회 : 323899029

원본 텍스트: http://www.phpskill.com/html/show-1-4418-1.html

위에서는 몇 가지 측면을 포함하여 페이지를 정적화하는 몇 가지 일반적인 방법을 소개했습니다. 이것이 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

뜨거운 기사 태그

메모장++7.3.1

메모장++7.3.1

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

SublimeText3 중국어 버전

SublimeText3 중국어 버전

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

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

Ubuntu 및 Debian용 PHP 8.4 설치 및 업그레이드 가이드 Ubuntu 및 Debian용 PHP 8.4 설치 및 업그레이드 가이드 Dec 24, 2024 pm 04:42 PM

Ubuntu 및 Debian용 PHP 8.4 설치 및 업그레이드 가이드

CakePHP 프로젝트 구성 CakePHP 프로젝트 구성 Sep 10, 2024 pm 05:25 PM

CakePHP 프로젝트 구성

CakePHP 날짜 및 시간 CakePHP 날짜 및 시간 Sep 10, 2024 pm 05:27 PM

CakePHP 날짜 및 시간

CakePHP 파일 업로드 CakePHP 파일 업로드 Sep 10, 2024 pm 05:27 PM

CakePHP 파일 업로드

CakePHP 라우팅 CakePHP 라우팅 Sep 10, 2024 pm 05:25 PM

CakePHP 라우팅

CakePHP 토론 CakePHP 토론 Sep 10, 2024 pm 05:28 PM

CakePHP 토론

PHP 개발을 위해 Visual Studio Code(VS Code)를 설정하는 방법 PHP 개발을 위해 Visual Studio Code(VS Code)를 설정하는 방법 Dec 20, 2024 am 11:31 AM

PHP 개발을 위해 Visual Studio Code(VS Code)를 설정하는 방법

CakePHP 빠른 가이드 CakePHP 빠른 가이드 Sep 10, 2024 pm 05:27 PM

CakePHP 빠른 가이드

See all articles