php - Adding filename to glob script -
i using following script display images on page. looking have 12000 images in folder, hence need pagination. files names numbers in ascending order 1 - 12000 , must displayed in order.
<?php $dir = "../image/thumb/"; //set extensions want load, seperate comma. $extensions = "jpeg,jpg"; //set number of images want display per page $imagesperpage = 20; //set $page variable if(!isset($_get['page'])){ $page = 1; }else{ $page = $_get['page']; } //load images array $images = glob($dir."*.{".$extensions."}", glob_brace); //count number of images $totalimages = count($images); //get total pages $totalpages = ceil($totalimages / $imagesperpage); //make sure page on not greater total pages available. if($page > $totalpages){ //set currnet page total pages. $page = $totalpages; } //now find start loading $from = ($page * $imagesperpage) - $imagesperpage; //now start looping for($i = $from; $i < ($from + $imagesperpage); $i++){ //we need make sure within range of totalimages. if($i < $totalimages){ //now can display image! echo "<img src='{$images[$i]}' alt='{$images[$i]}' />"; } } //now display page numbers! for($p = 1; $p <= $totalpages; $p++){ if($p == $page){ $tmp_pages[] = "<strong>{$p}</strong>"; }else{ $tmp_pages[] = "<a href='?page={$p}'>{$p}</a>"; } } //now display pages, seperated hyphon. echo "<br />" . implode(" - ", $tmp_pages); ?> i need have filenames echo below each image how can achieve this?
many in advance.
===== edit =====
this script works superscript complete code is:
<?php //the directory images folder, trailing slash $dir = "../image/thumb/"; //set extensions want load, seperate comma. $extensions = "jpeg,jpg"; //set number of images want display per page $imagesperpage = 20; //set $page variable if(!isset($_get['page'])){ $page = 1; }else{ $page = $_get['page']; } //load images array $images = glob($dir."*.{".$extensions."}", glob_brace); usort($images,function($a,$b){ $a=(int)preg_replace('~\d~','',$a); $b=(int)preg_replace('~\d~','',$b); return $a<$b?-1:1; }); //count number of images $totalimages = count($images); //get total pages $totalpages = ceil($totalimages / $imagesperpage); //make sure page on not greater total pages available. if($page > $totalpages){ //set currnet page total pages. $page = $totalpages; } //now find start loading $from = ($page * $imagesperpage) - $imagesperpage; //now start looping for($i = $from; $i < ($from + $imagesperpage); $i++){ //we need make sure within range of totalimages. if($i < $totalimages){ //now can display image! // echo "<img src='{$images[$i]}' alt='{$images[$i]}' /><a class=\"filename\">" . basename($images[i]) . "</a>"; echo "<img src='{$images[$i]}' alt='{$images[$i]}' /><p>" . basename($images[$i]) . " </p>"; } } //now display page numbers! for($p = 1; $p <= $totalpages; $p++){ if($p == $page){ $tmp_pages[] = "<strong>{$p}</strong>"; }else{ $tmp_pages[] = "<a href='?page={$p}'>{$p}</a>"; } } //now display pages, seperated hyphon. echo "<br />" . implode(" - ", $tmp_pages); ?>
try changing echo line (//now can display image!):
echo "<img src='{$images[$i]}' alt='{$images[$i]}' /><p>" . basename($images[$i]) . "</p>"; the basename() function returns filename of file.
and sort correctly, add line after $images:
usort($images,function($a,$b){ $a=(int)preg_replace('~\d~','',$a); $b=(int)preg_replace('~\d~','',$b); return $a<$b?-1:1; });
Comments
Post a Comment