지금 제 가 알 고 있 는 phop 이 정적 페이지 를 만 드 는 방법 을 정리 해 보 겠 습 니 다.
<?php
$title = "http://";
$file = "TwoMax Inter test templet,<br>author:Matrix@Two_Max";
$fp = fopen ("temp.html","r");
$content = fread ($fp,filesize ("temp.html"));
$content = str_replace ("{file}",$file,$content);
$content = str_replace ("{title}",$title,$content);
//
$list = '';
$sql = "select id,title,filename from article";
$query = mysql_query ($sql);
while ($result = mysql_fetch_array ($query)){
$list .= '<a href='.$root.$result['filename'].' target=_blank>'.$result['title'].'</a><br>';
}
$content .= str_replace ("{articletable}",$list,$content);
//
// echo $content;
$filename = "test/test.html";
$handle = fopen ($filename,"w"); // ,
/*
*/
if (!is_writable ($filename)){
die (" :".$filename." , !");
}
if (!fwrite ($handle,$content)){ //
die (" ".$filename." !");
}
fclose ($handle); //
die (" ".$filename." !");
?>
먼저 원 리 를 말 하 다.어떤 낙타 가 그렇게 많은 자 료 를 조사해 보 니 어떤 방법 을 써 도 원 리 는 같다 는 것 을 발견 했다.프로그램 으로 해당 하 는 데 이 터 를 읽 어서 모드 의 변 수 를 바 꾸 고 정적 페이지 를 만 드 는 것 입 니 다.php 에서 주로 사용 하 는 것 은 fread () 와 fwirte () 를 사용 하 는 것 이다.정적 페이지 가 생 성 되면 수정 문제 가 걸 립 니 다.여기 서 정규 일치 하 는 방법 으로 모델 에서 변 경 된 부 위 를 교체 할 수 있다.그러나 이런 방법 은 너무 번거롭다. 낙타 가 추천 하 는 방법 은 원래 생 성 된 모형 을 직접 잘라 내 고 다시 생 성 하 는 것 이다. 하하, 정말 모든 것 이 끝났다.
또 설명해 야 할 것 은 이런 정적 페이지 를 만 드 는 방법 은 일반적으로 변화 가 빈번 하지 않 은 페이지, 예 를 들 어 정보의 최종 페이지 에 사용 된다 는 것 이다.목록 페이지 에 대해 서 는 정보 업데이트 가 잦 지 않 으 면 바람 직 하 다.현재 인터넷 상에 서 정적 페이지 를 만 들 수 있 는 블 로그 나
포럼 프로그램 은 모두 백 스테이지 'html 페이지 생 성' 단 추 를 수 동 으로 클릭 하여 '반자동' 으로 html 를 생 성 합 니 다.일부 정 보 량 이 많은 포 털 사 이 트 는 통 하지 않 는 다.정적 페이지 를 '정적' 이 라 고 부 르 는 이 유 는 자동 으로 바 꿀 수 없 기 때문이다.정보 목록 이 하루 에 100 번 씩 업데이트 되면 정적 목록 페이지 는 100 번 다시 생 성 된다.만약 내 가 이런 항목 이 10 개 있다 면, 생각해 봐 도 충분히 피 를 토 할 수 있 을 것 이다.
자, 잡담 은 그만 하고 이제 실제 프로그램 시연 을 살 펴 보 자.
first: ob 함 수 를 이용 하여 만 든 둥둥 입 니 다. 코드 가 간단 하고 효율 도 상대 적 으로 높 습 니 다.낙타
높 은 사람 이 얻 은 소스 코드 를 약간 바 꾸 었 다.
<?php
ob_start();
@readfile("http://localhost/?package=pricab&place_port=4");
$text = ob_get_flush();
$myfile = fopen("myfile.html","w");
$text = str_replace ("{counent}",$string,$text);
fwrite($myfile,$text);
ob_clean();
?>
정적 페이지 를 생 성하 더 라 도 동적 으로 그 부분 을 읽 는 것 은 보존 해 야 하기 때문에 데 이 터 를 데이터베이스 에 삽입 한 후에 url 을 readfile 함수 에 전달 한 다음 에 캐 시 를 읽 으 면 fwrite 가 정적 페이지 를 생 성 할 수 있 습 니 다. 이것 은 낙타 가 가장 좋아 하 는 방법 입 니 다.코드 줄 수가 가장 적 고 효율 이 가장 높다.꼬 부 랑 꼬 부 랑
4. 567915. 누 드 페이지, 즉 단순 한 내용 으로 머리, 꼬리, 메뉴 가 없다.그래 야 자신의 모델 my file. html 를 자 유 롭 게 맞 출 수 있 습 니 다.정적 페이지 만 생 성 을 요구 하 는 것 이 라면,
ob_start();
@readfile("http://localhost/?package=pricab&place_port=4");
$string = ob_get_flush();
$myfile = fopen("myfile.html","w");
fwrite($myfile,$string);
ob_clean();
넘 어 갈 수 있어 요.
second: 보통 정적 html 페이지 를 생 성 합 니 다.
이런 방법 은 순서대로 하 는 것 이다.
str_replace 대체
우선 최종 내용 페이지 만 들 기:
$title = "http://siyizhu.com테스트 템 플 릿 ";
$file = "TwoMax Inter test templet,
author:Matrix@Two_Max";
$fp =
fopen ("temp.html","r");
$content =
fread ($fp,filesize ("temp.html"));
$content =
str_replace ("{file}",$file,$content);
$content =
str_replace ("{title}",$title,$content);
$filename = "test/test.html";
$handle =
fopen ($filename,"w"); //파일 포인터 열기, 파일 만 들 기
/*
파일 이 생 성 되 고 쓸 수 있 는 지 확인 합 니 다.
*/
if (!
is_writable ($filename)){
die ("파일:". $filename. "쓸 수 없습니다. 속성 을 확인 하고 다시 시도 하 십시오!");
}
if (!
fwrite ($handle, $content) {/ 파일 에 정 보 를 기록 합 니 다.
die ("파일 생 성". $filename. "실패!");
}
fclose ($handle); / / 포인터 닫 기
die ("파일 생 성". $filename. "성공!");
이 단 계 는 간단 합 니 다. 단순 한 변 수 를 바 꾸 면 됩 니 다. 정적 목록 페이지 를 만 들 려 면 원리 도 마찬가지 입 니 다. 프로그램 으로 글 목록 을 만 들 고 큰 변수 로 모듈 의 변 수 를 바 꾸 고 목록 의 페이지 를 넘 기 는 것 도 마찬가지 입 니 다. 물론 정보 업데이트 가 있 으 면 목록 페이지 를 넘 기 는 것 도 다시 생 성 해 야 합 니 다.
<?php
$title = "http://";
$file = "TwoMax Inter test templet,<br>author:Matrix@Two_Max";
$fp = fopen ("temp.html","r");
$content = fread ($fp,filesize ("temp.html"));
$content = str_replace ("{file}",$file,$content);
$content = str_replace ("{title}",$title,$content);
//
$list = '';
$sql = "select id,title,filename from article";
$query = mysql_query ($sql);
while ($result = mysql_fetch_array ($query)){
$list .= '<a href='.$root.$result['filename'].' target=_blank>'.$result['title'].'</a><br>';
}
$content .= str_replace ("{articletable}",$list,$content);
//
// echo $content;
$filename = "test/test.html";
$handle = fopen ($filename,"w"); // ,
/*
*/
if (!is_writable ($filename)){
die (" :".$filename." , !");
}
if (!fwrite ($handle,$content)){ //
die (" ".$filename." !");
}
fclose ($handle); //
die (" ".$filename." !");
?>
페이지 넘 기기:
우리 가 페이지 를 지정 할 때, 페이지 당 20 편 입 니 다. 한 채널 목록 에 있 는 글 은 데이터 베 이 스 를 통 해 45 개 로 조회 되 었 습 니 다. 먼저 우 리 는 조 회 를 통 해 다음 과 같은 인 자 를 얻 을 수 있 습 니 다. 1, 총 페이지 수, 2, 각 페이지 수. 두 번 째 단 계 는 for ($i = 0; $i < allpages; $i +) 입 니 다. 페이지 요 소 를 얻 고 분석 하고 글 이 생 성 되 며, 모두 이 순환 에서 실 행 됩 니 다. 다른 것 은 die ("파일 만 들 기". $filename."성공!"; 이 문 구 는 제거 하고 순환 후의 디 스 플레이 에 놓 습 니 다. 이 문 구 는 프로그램 실행 을 중단 하기 때 문 입 니 다. 예:
<?php
$fp = fopen ("temp.html","r");
$content = fread ($fp,filesize ("temp.html"));
$onepage = '20';
$sql = "select id from article where channel='$channelid'";
$query = mysql_query ($sql);
$num = mysql_num_rows ($query);
$allpages = ceil ($num / $onepage);
for ($i = 0;$i<$allpages; $i++){
if ($i == 0){
$indexpath = "index.html";
} else {
$indexpath = "index_".$i."html";
}
$start = $i * $onepage;
$list = '';
$sql_for_page = "select name,filename,title from article where channel='$channelid' limit $start,$onepage";
$query_for_page = mysql_query ($sql_for_page);
while ($result = $query_for_page){
$list .= '<a href='.$root.$result['filename'].' target=_blank>'.$title.'</a><br>';
}
$content = str_replace ("{articletable}",$list,$content);
if (is_file ($indexpath)){
@unlink ($indexpath); // ,
}
$handle = fopen ($indexpath,"w"); // ,
/*
*/
if (!is_writable ($indexpath)){
echo " :".$indexpath." , !"; // echo
}
if (!fwrite ($handle,$content)){ //
echo " ".$indexpath." !"; // echo
}
fclose ($handle); //
}
fclose ($fp);
die (" , , !");
?>
third: smarty 모드 정적 페이지 생 성
낙타
fetch 함수, 그 기능 은 free ad () 와 유사 하여 정적 페이지 를 만 들 수 있 습 니 다.
이 예 는 여러분 이 꼭 보고 싶 으 면 낯 이 익 습 니 다. 네, 스마트 매 뉴 얼 에서 fetch 함수 에 관 한 예, hoho. 어떤 낙타 가 빌려 쓰 면 공식 적 인 예 보다 항상 전형 적 이 잖 아!
caching = true; // only do db calls if cache doesn't exist if(!$smarty->is_cached("index.tpl")) { // dummy up some data $address = "245 N 50th"; $db_data = array( "City" => "Lincoln", "State" => "Nebraska", "Zip" => "68502" ); $smarty->assign("Name","Fred"); $smarty->assign("Address",$address); $smarty - > assign ($db data);} / / capture the output $output = $smarty - > fetch ("index. tpl"); / / 이곳 이 관건 입 니 다 / / do something with $output here echo $output; / / / oho 아웃 풋 결과 보 셨 죠? 그래서?
$fp = fopen("archives/2005/05/19/0001.html", "w");fwrite($fp, $content);fclose($fp);
?>
?>
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다른 사람의 웹사이트 편집: contenteditable 및 designMode그래도 우리가 그렇게 할 수 있다고 생각하는 것은 멋진 일입니다. 제가 강조하고 싶었던 일종의 관련 API가 실제로 몇 개 있기 때문에 오늘 그것을 가져왔습니다. contenteditable는 "true" 값이 할당...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.