以后发代码都会放到bookmark里,feed里不会看到了。
这次写了一个比较梦幻的分页类,简单,但是很好用。。

主要特点:

  • 支持模板
  • 支持sql和数组两种数据源

不适合:
没有对大量数据的分页做优化,所以不适用于变态分页.

简单举个例子,下面是一个对数组分页的例子

$pager = new Pager; 
$pager->count = count($data['contacts']);
$pager->count_per_page = 20;
$pager->param = 'p';
$pager->template = <<<EOF
{start}-{end},共{count}<br />
{first}<a href="{first_url}">首页</a>|{/first}
{pre}<a href="{pre_url}">上一页</a>|{/pre}
{next}<a href="{next_url}">下一页</a>|{/next}
{last}<a href="{last_url}">末页</a>{/last}
EOF;
//对数组进行分页
foreach($pager->slice($data['contacts']) as $contact):
//...
Copy Code 

功能比较全的测试代码

$pager = new Pager; 
$pager->count = 200; 
$pager->count_per_page = 20;
$pager->param = 'p';
$pager->template = <<<EOF
{first}<a href="{first_url}">首页</a>{/first}
{pre}<a href="{pre_url}">上一页</a>{/pre}
<ul>
{pages4}<li><a {current}style="color:red;"{/current} href="{page_url}">{page_num}</a></li>{/pages4}
</ul>
{next}<a href="{next_url}">下一页</a>{/next}
{last}<a href="{last_url}">末页</a>{/last}
{start}-{end}/{count}
<select onchange="window.location.href=this.value;">
{pages}<option {current}selected=selected{/current} value="{page_url}">{page_num}</a>{/pages}
</select>
EOF;
//这里使用sql获取数据
echo $p->get_sql('select * from xxx where xxx {limit}');
Copy Code 

代码:http://code-of-emptyhua.googlecode.com/svn/trunk/phplib/pager.class.php

———–
post by gmail~