웹사이트의 콘텐츠가 증가하고 사용자 방문 수가 증가함에 따라 대역폭과 서버에 대한 요청 수의 제한으로 인해 웹사이트 로드가 점점 더 느려지는 것은 불가피합니다. 당사 웹사이트의 코드 최적화 및 서버 구성 최적화.
일반적으로 다음과 같은 측면에서 최적화가 이루어집니다
이제 많은 웹사이트를 구축할 때 정적으로 처리해야 합니다. 왜 웹사이트를 정적으로 처리해야 합니까? 순수 정적 웹사이트는 모든 웹페이지가 독립적인 HTML 페이지로 구성된 웹사이트라는 것은 모두가 알고 있는 사실이며, 방문 시 데이터 처리 없이 파일을 직접 읽을 수 있으며, 검색에 매우 유용합니다. 엔진에도 매우 친숙합니다.
웹사이트에서는 순수 정적 웹사이트를 어떻게 구현하나요?
순수 정적 제작 기술을 사용하려면 먼저 웹 사이트 페이지를 요약하고 여러 스타일로 나눈 다음 이러한 페이지를 템플릿으로 만들어야 합니다. 생성할 때 먼저 소스 파일을 읽은 다음 .html로 끝나는 독립 페이지 파일을 생성해야 합니다. 따라서 순수하게 정적인 웹사이트는 더 많은 공간을 필요로 하지만, 실제로 필요한 공간은 그다지 크지 않습니다. 특히 중소기업 웹사이트의 경우 기술적으로 말하면 대규모 웹사이트에서는 전체 사이트의 순수 정적화를 달성하기가 상대적으로 어렵습니다. 어렵고 생성 시간이 너무 깁니다. 그러나 중소 규모 웹사이트에서는 여전히 순전히 정적 비교를 사용하고 있으며 이는 많은 장점을 가지고 있습니다.
동적 웹사이트는 어떻게 정적으로 처리되나요?
페이지 정적화는 동적 페이지를 html/htm 정적 페이지로 바꾸는 것을 의미합니다. 동적 페이지는 일반적으로 관리하기 매우 쉬운 asp, php, jsp, .net 및 기타 프로그래밍 언어로 작성됩니다. 그러나 웹페이지에 접근할 때 프로그램이 이를 먼저 처리해야 하기 때문에 접근 속도가 상대적으로 느립니다. 정적 페이지는 액세스가 빠르지만 관리가 어렵습니다. 그러면 동적 페이지의 정적 페이지가 두 페이지의 이점을 결합할 수 있습니다.
정적 처리가 웹사이트에 어떤 이점을 가져오나요?
정적 처리된 웹사이트는 정적 처리가 없는 웹사이트보다 더 안전합니다. 왜냐하면 해커가 사용자의 백그라운드 시스템을 모르기 때문에 정적 웹사이트는 공격하기 어려운 첫 번째 선택이 아니기 때문입니다. 동시에 어느 정도의 안정성도 갖추고 있습니다. 예를 들어 데이터베이스나 웹사이트 프로그램에 문제가 있어도 정적으로 처리되는 페이지를 방해하지 않으며 페이지가 열리지 않습니다. 프로그램이나 데이터의 영향을 받습니다.
검색 엔진 스파이더 프로그램은 스파이더 프로그램의 작업 부하를 줄일 수 있는 이러한 URL을 선호합니다. 일부 사람들은 검색 엔진이 이제 동적 URL을 완전히 크롤링하고 식별할 수 있다고 생각하지만 여전히 모든 사람이 그렇게 할 수 있는 것이 좋습니다. 정적 URL인 경우 정적 URL로 만들어 보세요.
이제 주로 페이지 정적화의 개념에 대해 이야기하겠습니다. 도움이 되셨으면 좋겠습니다!
HTML 정적화란 무엇입니까?
페이지 정적화에는 두 가지 유형이 있다고 흔히 말합니다. 하나는 의사 정적, 즉 URL 재작성이고, 다른 하나는 입니다. 진정한 정적화.
PHP 웹사이트 개발에서 웹사이트 홍보 및 SEO 요구 사항을 충족하려면 웹사이트를 전체적으로 또는 부분적으로 정적으로 처리해야 합니다. PHP 템플릿 사용, 캐싱, PHP에서 정적 HTML 페이지를 생성하는 방법은 다양합니다. 등을 통해 페이지 안정화를 달성합니다.
PHP 정적에 대한 간단한 이해는 웹 사이트에서 생성된 페이지를 정적 HTML 형식으로 방문자 앞에 표시하도록 하는 것입니다. PHP 정적은 순수 정적과 의사 정적으로 구분됩니다. 둘 사이의 차이점은 PHP가 정적 페이지를 생성하는 처리 메커니즘이 다르다는 것입니다.
PHP 의사 정적: Apache mod_rewrite를 사용하여 URL 재작성을 구현합니다.
정적 HTML의 이점:
1. 시스템 데이터베이스를 호출하지 않고도 서버의 부담을 줄이고 웹을 탐색할 수 있습니다.
2. 검색 엔진 최적화(SEO)에 도움이 됩니다. Baidu와 Google은 신속하게 포함될 뿐만 아니라 모든 페이지를 포함하는 정적 페이지를 우선적으로 포함합니다.
3. 페이지 열기 속도를 높입니다. 정적 페이지는 데이터베이스에 연결할 필요가 없으며 동적 페이지보다 훨씬 빠릅니다.
4.
HTML 페이지는 PHP 프로그램과 관련된 취약점의 영향을 받지 않으며 기본적으로 정적 페이지이므로 공격을 줄이고 SQL 삽입을 방지할 수 있습니다. 데이터베이스 오류가 발생하더라도 웹사이트의 정상적인 접속에는 영향을 미치지 않습니다.
5.
데이터베이스 오류가 발생해도 홈페이지의 정상적인 접속에는 영향을 미치지 않습니다.
가장 중요한 것은 액세스 속도를 높이고 서버의 부하를 줄일 수 있다는 것입니다. 데이터의 양이 수만, 수십만 이상이면 어느 것이 더 빠른지 알 수 있습니다. 검색 엔진에서 발견되었습니다. HTML 문서를 생성하는 작업이 더 번거롭고 절차도 더 복잡하지만 검색을 더 편리하게 하고 더 빠르고 안전하게 하기 위해서는 이러한 희생이 여전히 가치가 있습니다.
기본방법
file_put_contents() 함수
PHP에 내장된 캐싱 메커니즘을 사용하여 페이지 정적화(출력 버퍼링)를 달성합니다.
방법 1: PHP 템플릿을 사용하여 정적 페이지 생성 정적 웹 사이트를 구현하기 위해 PHP Smarty를 설치하고 사용하는 등 PHP 템플릿의 정적화를 구현하는 것은 매우 편리합니다.
Smarty를 사용하면 페이지를 정적으로 만들 수도 있습니다. Smarty를 사용할 때 일반적인 동적 읽기 방법에 대해 간단히 이야기하겠습니다.
일반적으로 다음 단계로 구분됩니다.
1. URL을 통해 매개변수(ID)를 전달합니다.
2. 그런 다음 이 ID를 기반으로 데이터베이스를 쿼리합니다.
3. 데이터를 얻은 후 필요에 따라 표시 내용을 수정합니다.
4. 표시할 데이터를 지정합니다.
5. 템플릿 파일을 표시합니다.
Smarty 정적화 프로세스는 위 프로세스에 두 단계만 추가하면 됩니다.
첫째: 1 앞에 ob_start()를 사용하여 버퍼를 엽니다.
둘째: 5 이후에 ob_get_contents()를 사용하여 메모리의 출력되지 않은 콘텐츠를 가져온 다음 fwrite()를 사용하여 해당 콘텐츠를 대상 html 파일에 씁니다.
위의 설명에 따르면 이 프로세스는 웹사이트의 프런트엔드에서 구현되는 반면, 콘텐츠 관리(추가, 수정, 삭제)는 일반적으로 백그라운드에서 수행됩니다. 위 프로세스를 효과적으로 활용하려면 작은 수단을 사용할 수 있습니다. 즉, 헤더()입니다. 구체적인 프로세스는 다음과 같습니다. 프로그램을 추가하고 수정한 후 Header()를 사용하여 페이지를 HTML화할 수 있도록 전경으로 점프하고, HTML을 생성한 후 배경 관리 측면으로 다시 점프합니다. 프로세스가 보이지 않습니다.
방법 2: PHP 파일 읽기 및 쓰기 기능을 사용하여 정적 페이지 생성
<? $out1 = "<html><head><title>PHP网站静态化教程</title></head><body>欢迎访问PHP网站开发教程网www.leapsoul.cn,本文主要介绍PHP网站页面静态化的方法</body></html>"; $fp = fopen("leapsoulcn.html","w"); if(!$fp) { echo "System Error"; exit(); } else { fwrite($fp,$out1); fclose($fp); echo "Success"; } ?>
방법 3: PHP 출력 제어 기능(Output Control)/ob 캐싱 메커니즘을 사용하여 정적 페이지 생성
출력 제어 기능은 캐시를 사용 및 제어하여 정적 HTML 페이지를 생성하며, PHP 파일 읽기 및 쓰기 기능도 사용합니다.
예를 들어, 특정 상품의 동적 상세 페이지 주소는 http://xxx.com?goods.php?gid=112
입니다.
따라서 여기서는 이 주소를 기반으로 이 세부정보 페이지의 내용을 읽은 다음 이를 정적 페이지로 저장합니다. 다음에 누군가가 이 제품 세부정보 페이지의 동적 주소를 방문하면 생성된 해당 정적 콘텐츠 파일을 직접 출력할 수 있습니다. .
PHP는 정적 페이지 예제 코드 1을 생성합니다
<? ob_start(); echo "<html>". "<head>". "<title>PHP网站静态化教程</title>". "</head>". "<body>欢迎访问脚本之家,本文主要介绍PHP网站页面静态化的方法</body>". "</html>"; $out1 = ob_get_contents(); ob_end_clean(); $fp = fopen("leapsoulcn.html","w"); if(!$fp) { echo "System Error"; exit(); } else { fwrite($fp,$out1); fclose($fp); echo "Success"; } ?>
我们知道使用PHP进行网站开发,一般执行结果直接输出到游览器,为了使用PHP生成静态页面,就需要使用输出控制函数控制缓存区,以便获取缓存区的内容,然后再输出到静态HTML页面文件中以实现网站静态化。
PHP生成静态页面的思路为:首先开启缓存,然后输出了HTML内容(你也可以通过include将HTML内容以文件形式包含进来),之后获取缓存中的内容,清空缓存后通过PHP文件读写函数将缓存内容写入到静态HTML页面文件中。
获得输出的缓存内容以生成静态HTML页面的过程需要使用三个函数:ob_start()、ob_get_contents()、ob_end_clean()。
知识点:
1、ob_start函数一般主要是用来开启缓存,注意使用ob_start之前不能有任何输出,如空格、字符等。
2、ob_get_contents函数主要用来获取缓存中的内容以字符串形式返回,注意此函数必须在ob_end_clean函数之前调用,否则获取不到缓存内容。
3、ob_end_clean函数主要是清空缓存中的内容并关闭缓存,成功则返回True,失败则返回False
方法4:使用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是键值一一对应,key默认最大不能超过128个字节,value默认大小是1M,因此1M大小满足大多数网页大小的存储。
以上就是PHP实现HTML页面静态化的方法,内容丰富,值得大家细细品味,从中得到收获。