PHP脚本未显示目录中的所有图像
我正在尝试使用PHP构建一个显示文件夹中图像的网页。但出于某种原因,它停止显示图像文件夹中的所有图像,而只显示部分图像。我在函数中进行了分页,但并非所有图像都显示出来。我检查了目录,以确保文件在那里,它们是 当计算这些文件时,根据php,我总共得到76个。该目录有74个图像。但我的页面仅显示60幅图像。请帮我修好这个 以下是我正在使用的代码:PHP脚本未显示目录中的所有图像,php,html,image,Php,Html,Image,我正在尝试使用PHP构建一个显示文件夹中图像的网页。但出于某种原因,它停止显示图像文件夹中的所有图像,而只显示部分图像。我在函数中进行了分页,但并非所有图像都显示出来。我检查了目录,以确保文件在那里,它们是 当计算这些文件时,根据php,我总共得到76个。该目录有74个图像。但我的页面仅显示60幅图像。请帮我修好这个 以下是我正在使用的代码: <?php function show_pagination($current_page, $last_page){
<?php
function show_pagination($current_page, $last_page){
echo '<br><div>';
if( $current_page > 1 ){
echo ' <button class="button" type="button"><a href="?page='.($current_page-1).'"><<Previous</a></button> ';
}
for($i = 1; $i <= $last_page; $i++){
echo ' <button class="button" type="button"><a href="?page='.$i.'">'.$i.'</a></button> ';
}
if( $current_page < $last_page ){
echo ' <button class="button" type="button"><a href="?page='.($current_page+1).'">Next>></a></button> ';
}
echo '</div><br>';
echo '<div><p>Page '.$current_page.' out of '.$last_page.'</p></div><br>';
}
$folder = 'images/';
$filetype = '*.*';
$files = glob($folder.$filetype);
$total = count($files);
$per_page = 20;
$last_page = (int)($total / $per_page);
if(isset($_GET["page"]) && ($_GET["page"] <= $last_page) && ($_GET["page"] > 0) ){
$page = $_GET["page"];
$offset = ($per_page * ($page - 1)) + 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;
}
echo "Total number of files is $total";
show_pagination($page, $last_page);
for($i = $offset; $i< $max; $i++){
$file = $files[$i];
$path_parts = pathinfo($file);
$filename = $path_parts['filename'];
echo "<a href='$file'><img src='$file' alt='$filename' style='height: 30%; width: 30%; border-style: solid;border-width: 2px;border-color: #000000; margin: 5px'></a>";
}
show_pagination($page, $last_page);
?>
这在某种程度上对我有用,但现在不行了,所以我想知道我的PHP代码是否存在固有的问题。我是php新手。问题在于代码行中使用的int:
$last_page = (int)($total / $per_page);
而不是将ceil用作:
原因是,总图像74/20给出了3.7,如果我们使用int,结果将是3。但不止这些。如果我们使用ceil,即使3.1也将转换为4。因此,您不会错过任何图像。检查图像src了吗?尝试在$last\u page=int$total/$per\u page中使用ceil而不是int;谢谢你@Sinto to the worked这里我补充了这一点作为对你的回答。
$last_page = ceil($total / $per_page);