사용자가 동적 링크를 클릭할 때마다 데이터 쿼리 요청이 서버로 전송되기 때문입니다
잠재적으로 수백만 건의 방문이 가능한 웹사이트의 경우 이는 의심할 여지 없이 서버에 큰 부담이 됩니다
그래서 동적 데이터를 정적인 HTML 페이지로 변환하는 것이 인력과 물적 자원을 절약하기 위한 첫 번째 선택이 되었습니다
해당 경험이 없었기 때문에 처음에는 이 기술이 매우 신비롭다고 생각했습니다
근데 몇 가지 예를 읽어보니 그리 복잡하지 않다는 걸 알게 됐어요(하지만 인터넷에 있는 정보는 특별히 상세하지 않네요)
오전과 오후에 걸쳐 실험을 한 끝에 드디어 작업을 완료했습니다. 몇 가지 생각과 간단한 예
새우들이 비웃지 않기를 바랍니다
일반적으로 php를 사용하여 html 페이지를 변환하고 출력하는 방법은 두 가지가 있습니다. 새우의 기사를 인용합니다.
아니요. 하나: 템플릿을 사용하세요. 현재 강력한 스마트 템플릿과 간단하고 사용하기 쉬운 스마트 템플릿을 포함하여 많은 PHP 템플릿이 있습니다. 각 템플릿에는 출력 콘텐츠를 가져오는 기능이 있습니다. 정적 페이지를 생성하는 방법은 이 기능을 사용하는 것입니다. 이 방법을 사용하면 코드가 더 명확하고 읽기 쉽다는 장점이 있습니다.
여기에서는 정적 페이지를 생성하는 방법을 설명하기 위해 smarty를 예로 사용합니다.
두 번째 방법: ob 계열 함수를 사용합니다. 여기서 사용되는 함수는 주로 ob_start(), ob_end_flush(), ob_get_content()입니다. 여기서 ob_start()는 버퍼를 연 후에는 PHP 프로그램의 파일이 아닌 헤더 정보가 모두 전송되지 않습니다. , ob_end_flush()를 사용할 때까지 내부 버퍼에 저장됩니다. 여기서 가장 중요한 함수는 ob_get_contents()입니다. 이 함수의 기능은 위의 fetch()와 동일합니다. 이유는 같습니다.
제가 선택한 두 번째 방법은 ob 시리즈를 사용하는 것입니다. 함수
처음 봤을 때 조금 헷갈렸는데 나중에 ob가 출력 버퍼링, 즉 출력 캐싱을 의미한다는 것을 알게 되었습니다.
출력할 준비가 되면 모든 데이터가 저장됩니다. 서버가 PHP를 구문 분석한 후 클라이언트에 출력할 모든 HTML 코드는 ob에 저장됩니다. html 정적 페이지를 출력하려면 캐시를 꺼내서 html 페이지에 작성하기만 하면 됩니다. 🎜>
사실 원리는 매우 간단합니다 여기서는 여러 함수를 사용합니다. PHP를 처음 접하는 사람이라 아직 많은 함수를 이해하지 못하므로 여기서 설명하겠습니다.ob_start(): 캐시 "캡처" 시작 즉, 여기에서 브라우저 캐시를 엽니다. ob_end_flush(): 브라우저 캐시 닫기변환하려는 html 파일이므로 최대 수백 개가 있을 수 있으므로 여기에서는 fopen의 경로를 정적으로 지정할 수 없습니다. HTML 파일 이름 지정을 용이하게 하기 위해 사용자가 보낸 ID 및 기타 정보를 저장할 수 있는 경로 변수를 설정할 수 있습니다. 지난번에 PHP로 XML 데이터를 읽는 방법의 예입니다.ob_get_content(): 캐시 콘텐츠 읽기 fopen("File path" , "Open mode") 이 함수에는 파일을 여는 데 사용할 수 있는 여러 가지 열기 모드가 있습니다. "r" 읽기 전용 모드로 열고 파일 포인터를 파일 헤더로 가리킵니다. “r” 읽기 및 쓰기 모드로 열고 파일 포인터가 파일 헤더를 가리킵니다. "w"는 쓰기 모드를 켜고 파일 포인터가 파일 헤더를 가리키도록 하며 파일 크기를 0으로 자릅니다. 파일이 존재하지 않으면 파일을 만들어 보십시오. “w”는 읽기-쓰기 모드로 열리고 파일 포인터가 파일 헤더를 가리키도록 하며 파일 크기를 0으로 자릅니다. 파일이 존재하지 않으면 생성해 보십시오. fwrite("파일 이름", "내용 쓰기") 파일 쓰기 fclose() 파일 닫기
재인쇄: http://www.cnblogs.com/awinlei/archive/2013/03/04/2942962.html
위 내용은 관련 내용을 포함하여 PHP를 사용하여 정적 HTML 페이지를 생성하는 두 가지 일반적인 방법을 소개합니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.