2014-09-06 4 views
3

나는 PHP와 폴더를 사용하여 데이터베이스 CMS를 구축하는 대신 사진 갤러리가있는 사이트를 구축하려고합니다. 지금은 폴더에있는 모든 이미지를 가져 와서 페이지에 표시하는 스크립트가 있지만 아마 100 장이 넘는 사진이 있으므로 여러 페이지에 걸쳐 페이지 매기기를 사용하고 싶습니다. 나는 이것을 어떻게하는지 모른다. 여기 폴더에서 모든 사진 가져 오기 및 PHP로 페이지 매기기

나는 현재 스크립트 실행 해요되어

<?php 
$folder = 'cms/gallery/photo/'; 
$filetype = '*.*'; 
$filename = HOW DO I GET THE NAME WITHOUT FILE TYPE 
$files = glob($folder.$filetype); 
foreach ($files as $file) 
{ 
    echo ' 

    <div class="galleryCellHolder"> 
     <div class="galleryCell"> 
      <a class="fancybox" rel="group" href="'.$file.'"><img class="galleryPhoto" src="'.$file.'" alt="'.$filename.'"></a> 
     </div> 
    </div> 

    '; 
} 
?> 

Q1을 - 어떻게 파일 확장자없이 파일 이름을 추출합니까? Q2 - 페이지 당 24 개의 이미지라고 말하면 어떻게 페이지를 매깁니까?

답변

7

페이징의 경우 총 페이지 수를 계산하고 현재 페이지의 매개 변수를 캡처 한 후 해당 범위를 반복해야합니다.

<?php 
$folder = 'cms/gallery/photo/'; 
$filetype = '*.*';  
$files = glob($folder.$filetype);  
$total = count($files);  
$per_page = 6;  
$last_page = (int)($total/$per_page);  
if(isset($_GET["page"]) && ($_GET["page"] <=$last_page) && ($_GET["page"] > 0)){ 
    $page = $_GET["page"]; 
    $offset = ($per_page + 1)*($page - 1);  
}else{ 
    echo "Page out of range showing results for page one"; 
    $page=1; 
    $offset=0;  
}  
$max = $offset + $per_page;  
if($max>$total){ 
    $max = $total; 
} 

당신은 확장자가없는 파일 이름을 얻기 위해의 PathInfo 기능 을 사용할 수 있습니다. 당신이 탐색을 만들 수있는 다음과 같은 기능을 사용

//print_r($files); 
    echo "Processsing page : $page offset: $offset max: $max total: $total last_page: $last_page";   
    show_pagination($page, $last_page);   
    for($i = $offset; $i< $max; $i++){ 
     $file = $files[$i]; 
     $path_parts = pathinfo($file); 
     $filename = $path_parts['filename'];   
     echo '   
     <div class="galleryCellHolder"> 
      <div class="galleryCell"> 
       <a class="fancybox" rel="group" href="'.$file.'"><img class="galleryPhoto" src="'.$file.'" alt="'.$filename.'"></a> 
      </div> 
     </div>   
     ';     
    }   
    show_pagination($page, $last_page); 

function show_pagination($current_page, $last_page){ 
    echo '<div>'; 
    if($current_page > 1){ 
     echo ' <a href="?page='.($current_page-1).'"> &lt;&lt;Previous </a> '; 
    } 
    if($current_page < $last_page){ 
     echo ' <a href="?page='.($current_page+1).'"> Next&gt;&gt; </a> '; 
    } 
    echo '</div>'; 
} 

?> 
+0

이 코드가 어떻게 작동하는지하시오 연결합니다. 설명이없는 코드는 스택 오버플로 형식에 적합하지 않습니다. – cybermonkey

+1

동의 함 일부 의견을 추가하겠다. 관찰 결과 덕분에 –

+0

감사합니다. @KevinSanchez, 페이지 1의 이미지 수를 제한하는 데는 문제가 없지만 페이지 매김이 없음을 나타냅니다. 내가 추가 할 때? page = 2 기본 페이지에있는 것과 같은 이미지를 보여줍니다 - 어떻게 페이지 매김을 정렬합니까? – user3177012