站长论坛
标题:
PHP分页通用类CPages
[打印本页]
作者:
superadmin
时间:
2007-10-4 22:35
标题:
PHP分页通用类CPages
成员函数说明
---------------------------------------------------------------------------------------------------------------------
public void CPages(int $page_count [,string $extra_str,string $page_str,int $num_per_page]);
函数功能:根据参数 生成分页链接
参数说明:
$page_count 整型 总页数 必要参数
$extra_str 字符串 附加QueryString 可选参数
如
http://www.tzlink.com/st.php?sort=new_list&page=13
则其中的 $extra_str="sort==new_list"; 这在条件查询中用得比较多
$page_str 字符串 分页的标识字符串 可选参数
如上面的URL之中的 $page_str=="page"
$num_per_page 整型 每页要显示的页码链接数 可选参数
默认为10
----------------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------------------
public int CPages::get_current_page($page_str="page")
函数功能:获取合法的当前页号,注意 此函数只保证取得合法的页号,并不保证所取得的页号不超过总页数
参数说明:
$page_str:分页标识字符串
-----------------------------------------------------------------------------------------------------------------------
用法范例:
$p=CPages::link(25,"sort=new&year=2007","offset",12)
当然,这里的总页数要事先经查询数据库获得
*************************************
*/
class CPages
{
var $page_count;
public function link($page_count,$extra_str="",$page_str="page",$num_per_page=10)
{
Global $PHP_SELF;
$prefix=$PHP_SELF.'?'.$extra_str.'&'.$page_str.'=';
$current_page=self::get_current_page($page_str);
if($page_count<=1)
{
return ;
}
if($current_page>1)
{
echo("<首页> ");
}
if(floor($current_page/$num_per_page))
{
printf(" %s\n",$num_per_page,$prefix,floor($current_page/$num_per_page)*$num_per_page-1,"<<");//
}
$tmp=floor($current_page/$num_per_page)*$num_per_page+1;
$s2=ceil($tmp/$num_per_page)*$num_per_page;
for($i=$tmp;($i<=$s2&&$i<=$page_count);$i++)
{
if($i==$current_page)
{
echo("$i ");
continue;
}
echo(" $i\n");
}
if((floor($current_page/$num_per_page)*$num_per_page+$num_per_page)<$page_count)
{
printf("%s",$num_per_page,$prefix,ceil($current_page/$num_per_page)*$num_per_page+1,">>");
}
if($current_page<$page_count)
{
echo(" <末页>");
}
printf(" ",$current_page<$page_count?$current_page+1:1);
printf(" ",$prefix);
printf("\n页次 $current_page/$page_count\n");
}
public function get_current_page($page_str="page")
{
if(isset($_GET[$page_str]))
{
$page_str=$_GET[$page_str];
if(!is_numeric($page_str))
return 1;
return ($page_str);
}
else
return 1;
}
}
$p=new CPages(37);
$p->link(26,"fa=12&uid=faiefafpflf");
?>
复制代码
欢迎光临 站长论坛 (http://www.tzlink.com/bbs/)
Powered by Discuz! X3.2