我有这个代码显示'images'目录下的所有图像,但它非常烦人,因为所有图像都显示在一个页面上:/
我怎么能在多个页面上分割这些图像?
这是代码
<html>
<head>
<link rel="stylesheet" href="style.css" type="text/css" media="screen" />
</head>
<?php
$files = glob("images/*.*");
echo '<div id="design">';
for ($i=0; $i<count($files); $i++) {
$num = $files[$i];
if ($i%3==0){echo '<div class="Row">';}
echo '<img class="img" width="250px" height="250px" src="'.$num.'" alt="random image" />';
if ($i%3==0){echo '</div>';}
}
echo '</div>';
?>
答案 0 :(得分:2)
分页!这是一个起点:
// glob list of images
$files = glob('images/*');
// for consistency, you'll have to sort the resulting array...
natcasesort($files);
// get a page number from a query string e.g: ?page=1
$page = filter_input(INPUT_GET, 'page', FILTER_VALIDATE_INT);
// filter_input returns null if there is no page value in the qs,
// so let's check that and add a default value if we need to
$page = $page ?: 1;
// slice the array! get a subset of the files array based on
// an offset (page number) and length (results per page)
$resultsPerPage = 5;
$slice = array_slice($files, (($page - 1) * $resultsPerPage), $resultsPerPage);
您现在可以正常显示结果子集。当然,您必须为每个页面提供一系列链接...这很简单:获取$files
数组的长度,并使用$resultsPerPage
值来确定您需要多少页显示。
希望这会有所帮助:)
答案 1 :(得分:1)
首先,尝试使用更多的rubust替换此行。这将返回所有文件(图像或其他任何内容),除非您确定只有图像文件位于文件夹中:
$files = glob("images/*.*");
$files
将生成一个包含图像路径的数组,您可以轻松使用此功能仅显示页面中所需的图像数。
<?php
$imagesPerPage = 10;
if(!isset($_GET["start"]))
{
$start = 0;
}
else
{
$start = $_GET["start"];
}
$files = glob("images/*.*");
for($i = $start; $i < $start + $imagesPerPage; $i++)
{
if(isset($files[$i]))
{
echo "<img src=\"".$files[$i]."\" width=\"100\" height=\"100\" />\r\n";
}
}
$start = $start + $imagesPerPage;
echo "<br />\r\n";
echo "<a href=\"index.php?start={$start}\">NEXT</a>";
?>
您可以遵循相同的规则并建立一个以前的链接!
请注意,停止(禁用)NEXT或Pervious链接取决于您自己!