PHP 긴 문장 페이지 인 스 턴 스 코드 구현(원본 코드 첨부)

글 의 내용 이 비교적 길 고 사용자 의 체험 도 를 만족 시 키 기 위해 저 희 는 글 의 내용 을 페이지 별로 표시 합 니 다.일반적인 페이지 처 리 는 배경 에서 글 을 발표 할 때 제출 한 내용 을 여러 페이지 후의 정적 파일 로 만 듭 니 다.본 고 를 통 해 실례 를 결합 하여 php 동 태 를 이용 하여 긴 문장의 내용 을 페이지 별로 처리한다.

효과 데모 보기       원본 코드 다운로드
어떻게 페이지 를 나 눕 니까?
수 동 페이지:일반적으로 내용 을 편집 할 때{pages}와 같은 특수 페이지 표 시 를 추가 합 니 다.제출 하면 PHP 프로그램 은 페이지 문자 에 따라 페이지 를 처리 하여 정적 페이지 를 생 성 합 니 다.이런 페이지 방법 은 페이지 를 나 누 는 것 이 정확 하지만 인공 적 으로 수 동 으로 페이지 부 호 를 추가 해 야 하기 때문에 작업량 이 많다.
자동 페이지 나 누 기:PHP 프로그램 은 설 정 된 페이지 문자 에 따라 내용 을 페이지 로 나 눈 다음 정적 페이지 를 생 성 합 니 다.이 방법 은 효율 이 높 고 서로 다른 html 코드 라벨 을 처리 하 는 데 요구 가 높다.
전단 JS 페 이 징:자 바스 크 립 트 를 사용 하여 긴 글 의 내용 을 캡 처 하여 요청 에 따라 단계별 내용 을 보 여 줌 으로 써 페 이 징 효 과 를 얻 을 수 있 습 니 다.이 방법 은 한 번 에 내용 을 읽 고 전단 js 에서 페이지 를 나 누 어 체험 합 니 다.
본 논문 의 인 스 턴 스 코드 는 긴 글 의 내용 을 PHP 로 나 누 어 자동 으로 수 동 으로 페이지 를 나 눌 수 있다 는 것 을 설명 한다.정적 html 페이지 를 만 드 는 것 은 본 논문 의 설명 범위 에 있 지 않 습 니 다.그 다음 에 저 희 는 정적 인 부분 을 만 드 는 글 소 개 를 전문 적 으로 설명 할 것 입 니 다.
페 이 징 클래스

<?php 
/* 
*        
*/ 
class cutpage{ 
private $pagestr; //       
private $pagearr; //           
private $sum_word; //   (UTF-8          ) 
private $sum_page; //    
private $page_word; //      
private $cut_tag; //      
private $cut_custom; //      
private $ipage; //       ,    
private $url; 
function __construct($pagestr,$page_word=1000){ 
$this->page_word = $page_word; 
$this->cut_tag = array("</table>", "</div>", "</p>", "<br/>", "”。", "。", ".", "!", "……", "?", ","); 
$this->cut_custom = "{nextpage}"; 
$tmp_page = intval(trim($_GET["ipage"])); 
$this->ipage = $tmp_page>1?$tmp_page:1; 
$this->pagestr = $pagestr; 
} 
function cut_str(){ 
$str_len_word = strlen($this->pagestr); //    strlen        
$i = 0; 
if ($str_len_word<=$this->page_word){ //              
$page_arr[$i] = $this->pagestr; 
}else{ 
if (strpos($this->pagestr, $this->cut_custom)){ 
$page_arr = explode($this->cut_custom, $this->pagestr); 
}else{ 
$str_first = substr($this->pagestr, 0, $this->page_word); //0-page_word    cutStr func.global     
foreach ($this->cut_tag as $v){ 
$cut_start = strrpos($str_first, $v); //              
if ($cut_start){ 
$page_arr[$i++] = substr($this->pagestr, 0, $cut_start).$v; 
$cut_start = $cut_start + strlen($v); 
break; 
} 
} 
if (($cut_start+$this->page_word)>=$str_len_word){ //        
$page_arr[$i++] = substr($this->pagestr, $cut_start, $this->page_word); 
}else{ 
while (($cut_start+$this->page_word)<$str_len_word){ 
foreach ($this->cut_tag as $v){ 
$str_tmp = substr($this->pagestr, $cut_start, $this->page_word); //  cut_start    page_word    
$cut_tmp = strrpos($str_tmp, $v); //    cut_start    ,page_word    ,              
if ($cut_tmp){ 
$page_arr[$i++] = substr($str_tmp, 0, $cut_tmp).$v; 
$cut_start = $cut_start + $cut_tmp + strlen($v); 
break; 
} 
} 
} 
if (($cut_start+$this->page_word)>$str_len_word){ 
$page_arr[$i++] = substr($this->pagestr, $cut_start, $this->page_word); 
} 
} 
} 
} 
$this->sum_page = count($page_arr); //    
$this->pagearr = $page_arr; 
return $page_arr; 
} 
//     ,    
function pagenav(){ 
$this->set_url(); 
$str = ''; 
//$str .= $this->ipage.'/'.$this->sum_page; 
for($i=1;$i<=$this->sum_page;$i++){ 
if($i==$this->ipage) { 
$str.= "<a href='#' class='cur'>".$i."</a> "; 
}else{ 
$str.= "<a href='".$this->url.$i."'>".$i."</a> "; 
} 
} 
return $str; 
} 
function set_url(){ 
parse_str($_SERVER["QUERY_STRING"], $arr_url); 
unset($arr_url["ipage"]); 
if (empty($arr_url)){ 
$str = "ipage="; 
}else{ 
$str = http_build_query($arr_url)."&ipage="; 
} 
$this->url = "http://".$_SERVER["HTTP_HOST"].$_SERVER["PHP_SELF"]."?".$str; 
} 
} 
?> 
이상 의 cutpage 류 는 내용 의 페이지 를 잘 처리 할 수 있 고 html 태그 가 페이지 에 가 져 오 는 번 거 로 움 을 처리 할 수 있 습 니 다.내용 에 페이지 문자{nextpage}가 설정 되 어 있 으 면 내용 을 페이지 문자 로 나 누 는 것 이 우선 입 니 다.
페이지 클래스 호출
저 희 는 파일 text.txt 의 글 내용 을 읽 었 다 고 가정 합 니 다.실제 항목 에 서 는 폼 이 긴 내용 을 제출 하거나 데이터 베이스 관련 표 의 내용 을 읽 어야 합 니 다.그 다음 에 페이지 클래스 를 예화 한 다음 에 현재 페이지 에 따라 해당 하 는 페이지 의 내용 을 호출 하고 출력 하 며 페이지 바 를 출력 합 니 다.

<?php 
$content = file_get_contents('text.txt'); 
$ipage = $_GET["ipage"]? intval($_GET["ipage"]):1; 
$CP = new cutpage($content); 
$page = $CP->cut_str(); 
echo $page[$ipage-1]; 
echo $CP->pagenav(); 
?>

좋은 웹페이지 즐겨찾기