사용자가 동적 링크를 클릭할 때마다 데이터 쿼리 요청이 서버로 전송되기 때문입니다
잠재적으로 수백만 건의 방문이 가능한 웹사이트의 경우 이는 의심할 여지 없이 서버에 큰 부담이 됩니다
그래서 동적 데이터를 정적인 HTML 페이지로 변환하는 것이 인력과 물적 자원을 절약하기 위한 첫 번째 선택이 되었습니다
해당 경험이 없었기 때문에 처음에는 이 기술이 매우 신비롭다고 생각했습니다
근데 몇 가지 예를 읽어보니 그리 복잡하지 않다는 걸 알게 됐어요(하지만 인터넷에 있는 정보는 특별히 상세하지 않네요)
오전과 오후에 걸쳐 실험을 한 끝에 드디어 작업을 완료했습니다. 몇 가지 생각과 간단한 예
새우들이 비웃지 않기를 바랍니다
일반적으로 php를 사용하여 html 페이지를 변환하고 출력하는 방법은 두 가지가 있습니다. 새우의 기사를 인용합니다.
아니요. 하나: 템플릿을 사용하세요. 현재 강력한 스마트 템플릿과 간단하고 사용하기 쉬운 스마트 템플릿을 포함하여 많은 PHP 템플릿이 있습니다. 각 템플릿에는 출력 콘텐츠를 가져오는 기능이 있습니다. 정적 페이지를 생성하는 방법은 이 기능을 사용하는 것입니다. 이 방법을 사용하면 코드가 더 명확하고 읽기 쉽다는 장점이 있습니다.
여기에서는 정적 페이지를 생성하는 방법을 설명하기 위해 smarty를 예로 사용합니다.
- require("smarty/Smarty .class.php");
- $t = new Smarty;
- $t->ass("title","Hello World!");
- $ content = $ t->fetch("templates/index.htm");
- //여기서 fetch()는 출력 콘텐츠를 가져오는 함수입니다. 이제 $content 변수에 콘텐츠가 있습니다. 표시
- $fp = fopen("archives/2005/05/19/0001.html", "w");
- fwrite($fp, $content);
- fclose( $fp);
- ?>
두 번째 방법: ob 계열 함수를 사용합니다. 여기서 사용되는 함수는 주로 ob_start(), ob_end_flush(), ob_get_content()입니다. 여기서 ob_start()는 버퍼를 연 후에는 PHP 프로그램의 파일이 아닌 헤더 정보가 모두 전송되지 않습니다. , ob_end_flush()를 사용할 때까지 내부 버퍼에 저장됩니다. 여기서 가장 중요한 함수는 ob_get_contents()입니다. 이 함수의 기능은 위의 fetch()와 동일합니다. 이유는 같습니다.
- ob_start();
- echo "Hello World!";
- $content = ob_get_contents( );//PHP 페이지의 모든 콘텐츠 출력 가져오기
- $fp = fopen("archives/2005/05/19/0001.html", "w");
- fwrite ($ fp, $content);
- fclose($fp);
- ?>
제가 선택한 두 번째 방법은 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() 파일 닫기
- ob_start();//브라우저 캐시 열기
- //xml 데이터를 읽는 방법
- $parser = xml_parser_create(); //파서 편집기 만들기
- xml_set_element_handler($parser, "startElement", "endElement") //태그가 트리거될 때 해당 기능을 설정합니다. 여기서는 각각 startElement와 endElenment입니다
- xml_set_character_data_handler($parser, "characterData");//데이터를 읽을 때 해당 함수를 설정
- $xml_file="1.xml";// 필요한 xml 파일을 지정하십시오. url
- $filehandler = fopen($xml_file, "r"); //파일 열기
- while ($data = fread($filehandler, 4096))
- {
- xml_parse($parser, $data, feof($filehandler));
- } // 처리할 때마다 4096바이트를 꺼냅니다.
- fclose($filehandler);
- xml_parser_free($parser);//파서 파서를 닫고 해제합니다
- $name=false;
- $position=false;
- function startElement($parser_instance, $element_name, $attrs) / /시작 태그 이벤트 기능
- {
- global $name,$position;
- if($element_name=="NAME")
- {
- $name=true;
- $position=false;
- echo "name:";
- }
- if($ element_name=="POSITION")
- {$name=false;
- $position=true;
- echo "위치:";
- }
- }
- function charData($parser_instance, $xml_data) //데이터를 읽을 때의 함수
- {
- 전역 $ 이름, $position;
- if($position)
- echo $xml_data."
"; - if($name)
- echo $xml_data."
"; - }
- function endElement($parser_instance, $element_name) //태그 이벤트를 종료하는 함수
- {
- 전역 $name,$position;
- $name=false;
- $position=false;
- }
- //xml 데이터 읽기 완료
- $htmlname=$id.".html";//$id는 여기에 전달된 ID를 직접 정의할 수 있습니다. user
- $htmlpath="archives/".$htmlname; //경로 변수 설정
- $content = ob_get_contents();//php 페이지에서 출력되는 모든 콘텐츠 가져오기
- $ fp = fopen($htmlpath, "w");
- fwrite($fp, $content);
- fclose($fp);
- ?>
재인쇄: http://www.cnblogs.com/awinlei/archive/2013/03/04/2942962.html
위 내용은 관련 내용을 포함하여 PHP를 사용하여 정적 HTML 페이지를 생성하는 두 가지 일반적인 방법을 소개합니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

PHP는 동적 웹 사이트를 구축하는 데 사용되며 해당 핵심 기능에는 다음이 포함됩니다. 1. 데이터베이스와 연결하여 동적 컨텐츠를 생성하고 웹 페이지를 실시간으로 생성합니다. 2. 사용자 상호 작용 및 양식 제출을 처리하고 입력을 확인하고 작업에 응답합니다. 3. 개인화 된 경험을 제공하기 위해 세션 및 사용자 인증을 관리합니다. 4. 성능을 최적화하고 모범 사례를 따라 웹 사이트 효율성 및 보안을 개선하십시오.

PHP는 MySQLI 및 PDO 확장 기능을 사용하여 데이터베이스 작업 및 서버 측 로직 프로세싱에서 상호 작용하고 세션 관리와 같은 기능을 통해 서버 측로 로직을 처리합니다. 1) MySQLI 또는 PDO를 사용하여 데이터베이스에 연결하고 SQL 쿼리를 실행하십시오. 2) 세션 관리 및 기타 기능을 통해 HTTP 요청 및 사용자 상태를 처리합니다. 3) 트랜잭션을 사용하여 데이터베이스 작업의 원자력을 보장하십시오. 4) SQL 주입 방지, 디버깅을 위해 예외 처리 및 폐쇄 연결을 사용하십시오. 5) 인덱싱 및 캐시를 통해 성능을 최적화하고, 읽을 수있는 코드를 작성하고, 오류 처리를 수행하십시오.

PHP에서 전처리 문과 PDO를 사용하면 SQL 주입 공격을 효과적으로 방지 할 수 있습니다. 1) PDO를 사용하여 데이터베이스에 연결하고 오류 모드를 설정하십시오. 2) 준비 방법을 통해 전처리 명세서를 작성하고 자리 표시자를 사용하여 데이터를 전달하고 방법을 실행하십시오. 3) 쿼리 결과를 처리하고 코드의 보안 및 성능을 보장합니다.

PHP와 Python은 고유 한 장점과 단점이 있으며 선택은 프로젝트 요구와 개인 선호도에 달려 있습니다. 1.PHP는 대규모 웹 애플리케이션의 빠른 개발 및 유지 보수에 적합합니다. 2. Python은 데이터 과학 및 기계 학습 분야를 지배합니다.

PHP는 전자 상거래, 컨텐츠 관리 시스템 및 API 개발에 널리 사용됩니다. 1) 전자 상거래 : 쇼핑 카트 기능 및 지불 처리에 사용됩니다. 2) 컨텐츠 관리 시스템 : 동적 컨텐츠 생성 및 사용자 관리에 사용됩니다. 3) API 개발 : 편안한 API 개발 및 API 보안에 사용됩니다. 성능 최적화 및 모범 사례를 통해 PHP 애플리케이션의 효율성과 유지 보수 성이 향상됩니다.

PHP를 사용하면 대화식 웹 컨텐츠를 쉽게 만들 수 있습니다. 1) HTML을 포함하여 컨텐츠를 동적으로 생성하고 사용자 입력 또는 데이터베이스 데이터를 기반으로 실시간으로 표시합니다. 2) 프로세스 양식 제출 및 동적 출력을 생성하여 htmlspecialchars를 사용하여 XSS를 방지합니다. 3) MySQL을 사용하여 사용자 등록 시스템을 작성하고 Password_Hash 및 전처리 명세서를 사용하여 보안을 향상시킵니다. 이러한 기술을 마스터하면 웹 개발의 효율성이 향상됩니다.

PHP와 Python은 각각 고유 한 장점이 있으며 프로젝트 요구 사항에 따라 선택합니다. 1.PHP는 웹 개발, 특히 웹 사이트의 빠른 개발 및 유지 보수에 적합합니다. 2. Python은 간결한 구문을 가진 데이터 과학, 기계 학습 및 인공 지능에 적합하며 초보자에게 적합합니다.

PHP는 여전히 역동적이며 현대 프로그래밍 분야에서 여전히 중요한 위치를 차지하고 있습니다. 1) PHP의 단순성과 강력한 커뮤니티 지원으로 인해 웹 개발에 널리 사용됩니다. 2) 유연성과 안정성은 웹 양식, 데이터베이스 작업 및 파일 처리를 처리하는 데 탁월합니다. 3) PHP는 지속적으로 발전하고 최적화하며 초보자 및 숙련 된 개발자에게 적합합니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

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

Eclipse용 SAP NetWeaver 서버 어댑터
Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

Dreamweaver Mac版
시각적 웹 개발 도구

안전한 시험 브라우저
안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.
