PHP가 동적 표시를 위해 MYSQL을 읽을 때 트래픽이 많으면 성능 문제가 많이 발생한다는 것을 알고 있습니다. 다른 사람의 가상 호스트를 임대하면 과도한 CPU 소비로 인해 CPU가 제한되어 웹 페이지가 표시됩니다. 접근할 수 없게 됩니다. 여기에서는 서버 CPU 부하를 크게 줄일 수 있는 PHP에서 HTML을 동적으로 생성하는 방법을 제공합니다.
먼저 .htaccess 파일을 설정하여 동적으로 호출된 매개변수를 정적 HTML URL 주소로 변환합니다. 예를 들어 post 디렉터리의 파일을 루트 디렉터리의 wp-post.php 파일로 전달하고 다음 명령문을 추가합니다. 유사합니다:
RewriteRule ^post/([a-z0-9-]+.html)$ wp-post.php?$1$2
그런 다음 wp-post.php 파일을 수정합니다. , 파일 시작 부분에 다음 PHP 코드를 추가합니다.
ob_start(); $qstring = isset($_SERVER[%26quot;QUERY_STRING%26quot;]) ? $_SERVER[%26quot;QUERY_STRING%26quot;] : %26quot;%26quot;; define(%26quot;HTML_FILE%26quot;, $_SERVER['DOCUMENT_ROOT'].%26quot;/post/%26quot;.$qstring); if (file_exists(HTML_FILE)) { $lcft = filemtime(HTML_FILE); if (($lcft + 3600) %26gt; time()) //判断上次生成HTML文件是否超过1小时,若没有才直接输出文件内容 { echo(file_get_contents(HTML_FILE)); exit(0); } }
뒤에 기존 PHP 코드를 추가한 후 현재 코드 끝에 다음 PHP 코드를 추가합니다.
define(%26quot;HTMLMETA%26quot;,%26quot;%26lt;!-- this is a real static html file created at %26quot;.date(%26quot;Y-m-d H:i:s%26quot;).%26quot; --%26gt;%26quot;); $buffer = ob_get_flush(); $fp = fopen(HTML_FILE, %26quot;w%26quot;); if ($fp) { fwrite($fp, $buffer.HTMLMETA); fclose($fp); }
좋습니다. 그러면 정적 HTML 페이지를 확인하세요. 페이지 끝에 주석 줄이 나타나면 정적 HTML 파일이 성공적으로 생성되었음을 의미합니다.
이 방법을 응용한 것 중 하나가 제가 앞서 작성한 WordPress Annual Blog Statistics Plug-in입니다. 이 통계 플러그인은 데이터베이스에 10번 이상 쿼리를 하므로 많은 사람이 접속할 경우 큰 성능 문제가 발생합니다. ., 제가 소개한 동적 HTML 생성 기술을 사용한 후에는 하루에 한 번 쿼리하고 통계 순위를 생성할 수 있으므로 데이터베이스 쿼리 성능 문제를 완벽하게 해결합니다.
동적으로 생성되는 정적 HTML 웹 페이지와 관련된 보다 일반적인 PHP 코드를 보려면 PHP 중국어 웹사이트를 참고하세요!