【发布时间】:2014-03-21 20:31:56
【问题描述】:
您好,我对 php 和其他东西还很陌生,所以我正在尽力而为
我有一个包含 200 多张图片的网站,我想将它们分成页面,所以我尝试分页,但我只有图片而不是数据库,所以我的代码到目前为止
$iPicturesPerSite = 10;
$output = '';
$files = glob('../images/'.$sSearchFor.'*.{jpg,png,gif}',GLOB_BRACE);
$iSite = 1;
if(isset($_GET['iSite']) && is_numeric($_GET['iSite']) && $_GET['iSite'] > 0){
$iSite = $_GET['iSite'];
}
$iMaxBildNummer = $iPicturesPerSite * $iSite;
if($iMaxBildNummer > sizeof($files)){
$iMaxBildNummer = sizeof($files);
}
for($i=(($iPicturesPerSite*$iSite)-$iPicturesPerSite); $i<$iMaxBildNummer; $i++){
$size = getimagesize($files[$i]);
$output = $output.$this->_simpleTpl("tpl/item.tpl",array(
'showName'=> basename($files[$i]),
'imagewidth' => $this->width,
'fileName'=>'images/'.basename($files[$i]),
'resolution'=>$size[0]."x".$size[1],
'fileSize' => round(filesize($files[$i])/1024),
'link' => '.link to file='.$files[$i]));
}
return $output;
}
到目前为止,我只能在第一页看到 10 张图片(取决于我在 iPicturesPerSite 中放入的内容)。但现在我需要添加 next/prev 链接行,我需要将图片拆分为链接。
我从 2 天开始就在尝试,但这就是我所得到的,而且我并没有变得更好:(任何链接/帮助都会很好。(这不是完整的代码,我还有一些其他的东西,它是一个 html + php 数据,所以我不在 html 数据中使用任何 php 代码)
试过了,但没有用。我认为我仍然需要更多地学习 php,因为我不知道该怎么做。还是谢谢
编辑:
$total_data = count($files);
$page = isset($_GET['page'])?intval($_GET['page']):1; // GETTING PAGE NUMBER FROM URL
if(empty($page) || $page==1) {
$start_val = 0;
$end_val = $iPicturesPerSite - 1;
}
else {
$start_val = ($page * $iPicturesPerSite) - $iPicturesPerSite;
$end_val = $start_val + ($iPicturesPerSite - 1);
}
for($i=$start_val;$i<=$end_val;$i++){
echo $files[$i].' ';
}
$less_than = $total_data/$iPicturesPerSite;
if($less_than>intval($less_than)) $less_than = $less_than + 1;
if($total_data>1) {
echo '<div class="pagination">';
echo ($page-1)>0?'<a href="?page='.($page-1).'">Previous</a> ':'Previous ';
for($i=1;$i<=$less_than;$i++){
if($page==$i) echo '<a class="paginator linkno">';
else echo '<a href="?page='.$i.'" class="paginator">';
echo $i;
echo '</a> ';
}
echo ($page+1)<=$less_than?'<a href="?page='.($page+1).'">Next</a>':'Next';
echo '</div>';
}
几乎。现在我有正确的数字,但我只能看到 1 张图像,其余的都在 char 中(不是图片,它更多 ../images/ui-bg_diagonals-medium_20_d34d17_40x40 - Kopie (2).png ../images/ui-bg_d)
【问题讨论】:
-
也许您可能希望输出每页的全部 200 张图片,然后使用 JavaScript 隐藏/显示它们,从而模拟分页。
-
为什么不用mysql?您可以在 csv 文件中管理它,对吗?
-
喜欢 facebook?不,我想这样放置 > 10 张图片/页或更多。我会在以后决定多少,但首先我需要为它创建函数。我现在不知道如何开始,我还在学习。没有 mysql,因为我现在不使用任何数据库,我只有一个装满图像的文件夹。
-
@Piskvor 这种方式会显着减慢您的应用程序加载时间,因为您需要为每个图像发出单独的请求。我不建议对图像执行此操作。
-
为什么我投了反对票?我真的尽我所能,在过去的几天里我已经搜索了很多。我只在这里寻求帮助,因为我不知道该怎么做。
标签: php pagination