将PHP输出拆分为多个页面

时间:2013-11-14 18:22:23

标签: php csv split

我在我的网站上安装了一个显示简单新闻文章的脚本。在后端有一个包含所有数据库的.csv文件 - 前端包含这个代码(尽管我已将其更改为适合我自己的网站):

<?php  
//get news class and array  
include_once('newsadmin/includes/newsTools.class.inc.php');  
$newsTools      = new newsTools('csv/news.csv');  
$news_headlines = $newsTools->getNewsArray();  
//output news array as formatted html  
if (!count($news_headlines)>0){  
    echo '<p>There are currently no news headlines.</p>';  
}else{  
    foreach ($news_headlines as $key => $item){  
        list($news_id,$news_date,$news_title,$news_body) = $item;  
        $formatted_date = date('F j, Y, g:i a',$news_date);  
echo <<<HTML  
<a name="$news_id" id="$news_id"></a>  
<h3>$news_title</h3>  
$news_body  
<p><em>Posted: $formatted_date</em></p>  
<hr />  
HTML;  
    }  
}  
?>  

我正在尝试找到一个解决方案,将新闻结果分成多个页面 - 比如每页最多10个新闻项目。这显然会在页面底部创建一组链接,例如&lt; 1 2 3&gt;

我很抱歉,如果有很多要问的话 - 但我已经搜索了谷歌,并且只提出了解决使用MYSQL的网站问题的解决方案,而我不是。

http://dev.pixxl.us/bwc/news.php

三江源。

1 个答案:

答案 0 :(得分:2)

你必须研究分页。工作流程应该是这样的 1)你有多少件? 2)每页要列出多少个? 3)定义了1&amp; 2,你有多少页? 4)您目前在哪个页面? 5)基于4的数据集应该显示什么? 6)准备页面链接

# number 1
$total_items = count($news_headlines);

# number 2
$perpage = 10;

# number 3
$total_pages = ceil($total_items/$perpage);

# number 4 (you have to decide on the _GET parameter you are going to use, like page.php?page=2 etc.
$current_page = ($_GET['page'] == '') ? 1:$_GET['page'];

# number 5
$offset = ($current_page-1)*$perpage;
$news_headlines = array_slice($news_headlines,$offset,$perpage);

# number 6
for ($i=1; $i<=$total_pages; $i++) echo '<a href="page.php?page='.$i.'">'.$i.'</a> ';