>  기사  >  백엔드 개발  >  PHP에서 정적 페이지를 생성하기 위한 세 가지 방법 및 코드 세부정보

PHP에서 정적 페이지를 생성하기 위한 세 가지 방법 및 코드 세부정보

WBOY
WBOY원래의
2016-07-25 09:05:48965검색
  1. ob_start();
  2. @readfile("http://bbs.it-home.org/");
  3. $text = ob_get_flush();
  4. $myfile = fopen("myfile.html","w");
  5. $text =
  6. str_replace ("{counent}",$string,$text) ;
  7. fwrite($myfile,$text);
  8. ob_clean();
  9. ?>
코드를 복사하세요

정적 페이지가 생성되고 동적으로 읽은 부분도 유지되어야 합니다. 데이터를 데이터베이스에 삽입한 후 URL을 readfile 함수에 전달한 다음 이를 캐시로 읽어 들여 정적 페이지를 생성하는 방법입니다. Tutuo는 가장 높이 평가합니다. 최소한의 코드 라인과 최고의 효율성. http://bbs.it-home.org/는 헤더, 테일, 메뉴가 없는 베어 페이지, 즉 순수한 콘텐츠입니다. 이러한 방식으로 자신만의 템플릿 myfile.html을 더 자유롭게 사용자 정의할 수 있습니다. 정적 페이지 생성만 필요한 경우 이는 기본적으로 요구 사항을 충족합니다.

2. 일반적으로 정적 HTML 페이지를 생성합니다. 페이지를 읽고 str_replace로 바꿉니다. 먼저 최종 콘텐츠 페이지를 만듭니다.

  1. $title = "http://siyizhu.com 테스트 템플릿";
  2. $file = "TwoMax 인터 테스트 template,
    author:[email=Matrix@Two_Max]Matrix@Two_Max[/email]";
  3. $fp = fopen ("temp.html","r");
  4. $content = fread ($fp,filesize ("temp.html"));
  5. $content = str_replace("{file}",$file,$content);
  6. $content = str_replace("{title}",$ title,$content);
  7. $filename = "test/test.html";
  8. $handle = fopen ($filename,"w"); //파일 포인터를 열고 파일을 생성합니다
  9. / * 파일이 생성되고 쓰기 가능한지 확인*/
  10. if (!is_writable ($filename))
  11. {
  12. die ("파일: ".$filename."이 쓰기 가능하지 않습니다. 속성을 확인하고 다시 시도하세요! ");
  13. }
  14. if (!fwrite ($handle,$content))
  15. { //파일에 정보 쓰기
  16. die ("파일 생성".$filename."실패함 !" );
  17. }
  18. fclose ($handle); //포인터 닫기
  19. die ("파일 생성".$filename."성공!");
  20. ?>
코드 복사

이 단계는 단순한 변수 교체입니다. 정적 목록 페이지를 생성하려는 경우에도 원칙은 동일합니다. 프로그램을 사용하여 기사 목록을 생성하고 이를 큰 변수로 처리하고 템플릿의 변수를 교체합니다. 목록은. 물론 정보가 업데이트되면 목록 페이지도 다시 생성해야 합니다.

  1. $title = "http://";
  2. $file = "TwoMax 인터 테스트 템플릿,$fp = fopen ("temp.html","r");
  3. $content = fread ($fp,filesize ("temp.html"));
  4. $content = str_replace ("{file}",$file,$content);
  5. $content = str_replace ("{title}",$title,$content) ;
  6. //목록 생성 시작
  7. $list = '';
  8. $sql = "기사에서 ID, 제목, 파일 이름 선택";
  9. $query = mysql_query($sql);
  10. while($result = mysql_fetch_array ($query))
  11. {
  12. $list .= ''.$result ['title'].'
    ';
  13. }
  14. $content .= str_replace("{articletable}",$list,$content);//목록 생성 끝
  15. // echo $content;
  16. $filename = "test/test.html";
  17. $handle = fopen ($filename,"w");
  18. //파일 포인터를 열고 생성 파일
  19. /* 파일이 생성되었고 쓰기 가능한지 확인하세요*/
  20. if(!is_writable ($filename))
  21. {
  22. die ("파일: ".$filename."은 쓸 수 없습니다." , 확인해주세요 속성 후 재시도! ");
  23. }
  24. if(!fwrite($handle,$content))
  25. { //파일에 정보 쓰기
  26. die ("파일 생성". $filename ."실패!");
  27. }
  28. fclose($handle); //포인터 닫기
  29. die("파일 생성".$filename."성공! ");
  30. ?>
코드 복사

페이지 넘김 정보: 페이징을 지정하면 페이지당 20개의 기사가 있습니다. 데이터베이스 쿼리에 따르면 특정 하위 채널 목록에는 45개의 기사가 있습니다. 먼저 쿼리를 통해 다음 매개변수를 얻습니다. 1, 총 페이지 수 2, 페이지당 기사 수. 두 번째 단계 for ($i = 0; $i

  1. $fp = fopen ("temp.html"," r");
  2. $content = fread ($fp,filesize ("temp.html"));
  3. $onepage = '20';
  4. $sql = "channel='인 기사에서 ID 선택 $channelid'";
  5. $query = mysql_query($sql);
  6. $num = mysql_num_rows($query);
  7. $allpages = ceil($num / $onepage);
  8. for($ i = 0;$i<$allpages; $i )
  9. {
  10. if ($i == 0)
  11. {
  12. $indexpath = "index.html";
  13. }
  14. else
  15. {
  16. $indexpath = "index_".$i."html";
  17. }
  18. $start = $i * $onepage;
  19. $list = '';
  20. $sql_for_page = "channel='$channelid'가 $start,$onepage를 제한하는 기사에서 이름, 파일 이름, 제목을 선택하십시오.";
  21. $query_for_page = mysql_query ($sql_for_page);
  22. while ($result = $query_for_page )
  23. {
  24. $list .= ''.$title.'}
  25. $content = str_replace("{articletable}",$list,$content);
  26. if (is_file ($indexpath))
  27. {
  28. @unlink ($ indexpath); //파일이 이미 존재한다면 삭제
  29. }
  30. $handle = fopen ($indexpath,"w"); //파일 포인터를 열고 파일 생성
  31. /*확인 파일이 생성되었으며 쓰기 가능합니다*/
  32. if (!is_writable ($indexpath))
  33. {
  34. echo "파일: ".$indexpath."가 쓰기 가능하지 않습니다. 해당 속성을 확인하고 다시 시도하십시오! "; //echo로 수정
  35. }
  36. if (!fwrite ($handle,$content))
  37. {//파일에 정보 쓰기
  38. echo "파일 생성".$indexpath." 실패하다! "; //echo로 수정
  39. }
  40. fclose($handle); //포인터 닫기
  41. }
  42. fclose($fp);
  43. die("페이징 파일 생성이 완료되었습니다. 생성되지 않았습니다. 파일 권한 시스템을 확인하고 템플릿이 정적 페이지를 생성합니다!
smarty에는 fread()와 유사하고 정적 페이지를 생성하는 데 사용할 수 있는 자체 가져오기 기능이 있습니다. 똑똑한 기술에 관해 여기에서 몇 가지 기사를 읽을 수 있습니다. 1) 스마티 기본 설정 2) 스마트 캐싱 관련 응용 3) smarty를 사용하여 정적 페이지를 생성하는 방법 4) PHP 템플릿 엔진 Smarty 상세 소개

include("Smarty.class.php");$smarty = new Smarty;$smarty->caching = true;// 캐시가 존재하지 않는 경우에만 db 호출을 수행합니다

if(!$smarty->is_cached("index.tpl") )
{// 일부 데이터 더미
    $address = "245 N 50th";
  1. $db_data = array("City" => "Lincoln", "State" => "Nebraska" , "우편번호" => "68502");
  2. $smarty->할당("이름","프레드");
  3. $smarty->할당("주소",$address);
  4. $smarty->sign($db_data);
  5. }// 출력 캡처
  6. $output = $smarty->fetch("index.tpl");
  7. //이 장소는 Key // 여기에서 $output으로 뭔가를 하세요
  8. echo $output; //호호, 출력 결과를 보셨나요? 그러면 fwrite 후에 원하는 결과를 얻게 됩니다.
  9. $fp = fopen("archives/2013/05/19/0001.html", "w");
  10. fwrite($fp, $content);
  11. fclose($fp);
  12. ?>
  13. 코드 복사
  14. 코드 복사
  15. 코드는 다음과 같습니다.
ob_start();echo "Hello World!";

$content = ob_get_contents( );//PHP 페이지의 모든 콘텐츠 출력 가져오기

$fp = fopen("archives/2013/05/19/0001.html", "w");
fwrite($fp, $content );
fclose($fp);
    ?>
  1. 코드 복사
  2. 참고: 정적 페이지를 생성할 수 있는 블로그 또는 포럼 프로그램은 백그라운드에서 "HTML 페이지 생성" 버튼을 수동으로 클릭하여 HTML을 "반자동"으로 생성합니다.

    당신이 관심을 가질 만한 기사: PHP 생성 정적 페이지 기능 예시(php2html) PHP에서 정적 페이지를 생성하는 방법(3가지 기능) PHP를 사용하여 HTML 정적 페이지를 생성하는 방법에 대한 참조 정적 페이지를 생성하기 위해 PHP로 작성된 클래스 데이터베이스의 모든 콘텐츠에서 HTML 정적 페이지를 생성하는 코드 가상호스트에서 정기적으로 정적 페이지를 자동 생성하는 방법 PHP를 사용하여 정적 페이지 생성에 대한 자세한 튜토리얼 아파치에서 의사정적 페이지에 접근할 수 없는 문제에 대한 해결책 정적 페이지의 스파이더 크롤링 기록에 대해 PHP로 작성된 코드 smarty를 사용하여 정적 페이지를 생성하는 방법 PHP에서 정적 페이지를 생성하는 방법 아파치가 의사정적 페이지에 접근할 수 없는 문제에 대한 해결책



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