<?php
$rows_per_page = 2;
$cols_per_page = 2;
$image_href = '<a href=/';
$image_links = array('file1/page1>', 'file2/page2>', 'file3/page3>',
'file4/page4>', 'file5/page5>', 'file6/page6>', 'file6/page6>',
'file/page7>', 'file/page8>', 'subfile/page9>');
$img_srcs = '<img src="https://s3.amazonaws.com/imagetitle/';
$images = array();
for($i = 1; $i < 10; $i++)
{
$images[$i] = $i;
}
$image_ending = '.png" height="200" width="200" /></a>';
$image_descriptions = array('<br />something', '<br />description',
'<br />arbitrary', 'random', '<br />you', '<br />get', '<br />the',
'<br />idea', '<br />itsdescriptions');
$total_images = count($images);
$images_per_page = $rows_per_page * $cols_per_page;
$total_images = count($images);
$total_pages = ceil($total_images / $images_per_page);
$current_page = (int) $_GET['page'];
if($current_page<1 || $current_page>$total_pages)
{
$current_page = 1;
}
//Get records for the current page
$page_image_links = array_splice($image_links, ($current_page-1)*$images_per_page, $images_per_page);
$page_images = array_splice($images, ($current_page-1)*$images_per_page, $images_per_page);
$page_image_descriptions = array_splice($image_descriptions, ($current_page-1)*$images_per_page, $images_per_page);
$slots = "<table border=\"1\">";
for($row=0; $row<$rows_per_page; $row++)
{
$slots .= "<tr>";
for($col=0; $col<$cols_per_page; $col++)
{
$imgIdx = ($row * $rows_per_page) + $col;
$img = (isset($page_images[$imgIdx])) ? "{$image_href}{$page_image_links[$imgIdx]}{$img_srcs}{$page_images[$imgIdx]}{$image_ending}{$page_image_descriptions[$imgIdx]}" : ' ';
$slots .= "<td>$img</td>";
}
$slots .= "</tr>";
}
$slots .= "</table>";
//Create pagination links
$first = "First";
$prev = "Prev";
$next = "Next";
$last = "Last";
if($current_page>1)
{
$prevPage = $current_page - 1;
$first = "<a href=\"blah.php?page=1\">First</a>";
$prev = "<a href=\"blah.php?page={$prevPage}\">Prev</a>";
}
if($current_page<$total_pages)
{
$nextPage = $current_page + 1;
$next = "<a href=\"blah.php?page={$nextPage}\">Next</a>";
$last = "<a href=\"blah.php?page={$total_pages}\">Last</a>";
}
?>
<html>
<title></title>
<body>
<h2>Here are the records for page <?php echo $current_page; ?></h2>
<ul>
<?php echo $slots; ?>
</ul>
Page <?php echo $current_page; ?> of <?php echo $total_pages; ?>
<br />
<?php echo "{$first} | {$prev} | {$next} | {$last}"; ?>
</body>
</html>
所以基本上上面这段代码可以很容易地提供图像及其链接。目前,我没有那么多图像,因此页面运行速度非常快。但是,从长远来看,我在想。如果我说10,000张图片,那么处理每个分页页面需要很长时间,因为我会将file1 / page1的$ image_links提升到file10000 / page10000,以及10000个描述!有没有办法阻止Web浏览器读取或跳过脚本的某些部分(在我的情况下为$ image_links和$ image_descriptions)?这样,它就不需要通读所有10000 $ image_links和$ image_descriptions。
谢谢!
答案 0 :(得分:2)
我将建议另一种方法。为此使用数组并不理想;它真的感觉它应该是一个数据库驱动的应用程序。
如果您决定采用这种方法,分页会变得更容易。您可以向数据库引擎询问相应的记录。例如,在MySQL中,你要求的数据是这样的:
通过id limit 10 offset 20;
从tableA顺序中选择*这将返回id的21到30。
......而且,会更好地扩展。当然,如果你从未对数据库做过任何工作,那么就会有一个学习曲线。
答案 1 :(得分:1)
如果您想在某个地方结束执行,只需致电exit;
答案 2 :(得分:0)
尝试在&lt;上使用onload函数正文&gt;的html,所以它会立即加载页面