从文件夹中获取所有照片并使用PHP分页
我试图建立一个网站,有一个照片库,而不是建立一个数据库CMS,我正在尝试使用PHP和文件夹。目前,我有一个脚本来获取文件夹中的所有图像,并将它们显示在一个页面上,然而,由于可能会有超过100张照片,我想使用分页将其显示在多个页面上,但我不知道如何做到这一点 以下是我当前正在运行的脚本:从文件夹中获取所有照片并使用PHP分页,php,pagination,Php,Pagination,我试图建立一个网站,有一个照片库,而不是建立一个数据库CMS,我正在尝试使用PHP和文件夹。目前,我有一个脚本来获取文件夹中的所有图像,并将它们显示在一个页面上,然而,由于可能会有超过100张照片,我想使用分页将其显示在多个页面上,但我不知道如何做到这一点 以下是我当前正在运行的脚本: <?php $folder = 'cms/gallery/photo/'; $filetype = '*.*'; $filename = HOW DO I GET THE NAME WITHOUT FILE
<?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幅图像进行分页?对于分页,您必须计算要分页的项目总数,捕获当前页面的参数并在相应范围内迭代
<?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;
}
请说明此代码的工作原理。没有任何解释的代码不适合堆栈溢出的格式。感谢@KevinSanchez,这可以很好地限制第1页上的图像数量,但不显示分页。当我添加?page=2时,它显示的图像与默认页面上的图像相同-如何对分页进行排序?我已更新代码以计算最后一页,并创建了一个生成导航链接的函数
//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).'"> <<Previous </a> ';
}
if( $current_page < $last_page ){
echo ' <a href="?page='.($current_page+1).'"> Next>> </a> ';
}
echo '</div>';
}
?>