这是 2.0 的分页函数,比较好用。我都用它。function multi($num, $perpage, $curr_page, $mpurl) {
$multipage = '';
if($num > $perpage) {
$page = 10;
$offset = 2; $pages = ceil($num / $perpage);
$from = $curr_page - $offset;
$to = $curr_page + $page - $offset - 1;
if($page > $pages) {
$from = 1;
$to = $pages;
} else {
if($from < 1) {
$to = $curr_page + 1 - $from;
$from = 1;
if(($to - $from) < $page && ($to - $from) < $pages) {
$to = $page;
}
} elseif($to > $pages) {
$from = $curr_page - $pages + $to;
$to = $pages;
if(($to - $from) < $page && ($to - $from) < $pages) {
$from = $pages - $page + 1;
}
}
}
$multipage .= "<a href=\"$mpurl&page=1\"><<</a> ";
for($i = $from; $i <= $to; $i++) {
if($i != $curr_page) {
$multipage .= "<a href=\"$mpurl&page=$i\">[$i]</a> ";
} else {
$multipage .= '<u><b>['.$i.']</b></u> ';
}
}
$multipage .= $pages > $page ? " ... <a href=\"$mpurl&page=$pages\"> [$pages] >></a>" : " <a href=\"$mpurl&page=$pages\">>></a>";
}
return $multipage;
}
$multipage = '';
if($num > $perpage) {
$page = 10;
$offset = 2; $pages = ceil($num / $perpage);
$from = $curr_page - $offset;
$to = $curr_page + $page - $offset - 1;
if($page > $pages) {
$from = 1;
$to = $pages;
} else {
if($from < 1) {
$to = $curr_page + 1 - $from;
$from = 1;
if(($to - $from) < $page && ($to - $from) < $pages) {
$to = $page;
}
} elseif($to > $pages) {
$from = $curr_page - $pages + $to;
$to = $pages;
if(($to - $from) < $page && ($to - $from) < $pages) {
$from = $pages - $page + 1;
}
}
}
$multipage .= "<a href=\"$mpurl&page=1\"><<</a> ";
for($i = $from; $i <= $to; $i++) {
if($i != $curr_page) {
$multipage .= "<a href=\"$mpurl&page=$i\">[$i]</a> ";
} else {
$multipage .= '<u><b>['.$i.']</b></u> ';
}
}
$multipage .= $pages > $page ? " ... <a href=\"$mpurl&page=$pages\"> [$pages] >></a>" : " <a href=\"$mpurl&page=$pages\">>></a>";
}
return $multipage;
}
解决方案 »
- php做客户端,java做服务端,用webservice怎么交互
- php怎样把数组转换为json发送一客户端.
- 刚学PHP,想问下怎么打开MYSQL
- 帮解密个DeZend加密文件 $_obfuscate_混稀 的
- 单例模式
- 理不清$_get机制?
- win2k3下安装php5出错
- 用PHP+AJAX实现一个身份证号码查询解析引擎
- 本人想在深圳运行一个php网站。主要用户面对深圳本地人,所以想把程序放在深圳的主机上,请问深圳有哪些好(相对便宜,带宽大)的空间提
- 取得前一页的url不带参数的地址
- [请教高手]数据集回写到数据库的一个问题
- 散分,今天我整了个网站(php的) 大伙进来去看看,提高一下人气,人人都有分啊
还有,有哪位大侠对discuz的程序结构比较了解的?能不能分析一下discuz的程序结构?谢谢
另外,分页我觉得大龄青年的js也很好用,看着还省心
呵呵,个人感觉csdn的也很好噢,
另外,分页我觉得大龄青年的js也很好用,看着还省心
大龄青年的是哪个?
里面的形参都表示什么呀...
$multipage = '';
$mpurl .= strpos($mpurl, '?') ? '&' : '?';
if($num > $perpage) {
$page = 10;
$offset = 2; $realpages = ceil($num / $perpage);
$pages = $maxpages && $maxpages < $realpages ? $maxpages : $realpages;
$from = $curpage - $offset;
$to = $curpage + $page - $offset - 1;
if($page > $pages) {
$from = 1;
$to = $pages;
} else {
if($from < 1) {
$to = $curpage + 1 - $from;
$from = 1;
if(($to - $from) < $page && ($to - $from) < $pages) {
$to = $page;
}
} elseif($to > $pages) {
$from = $curpage - $pages + $to;
$to = $pages;
if(($to - $from) < $page && ($to - $from) < $pages) {
$from = $pages - $page + 1;
}
}
} $multipage = ($curpage - $offset > 1 && $pages > $page ? '<td> <a href="'.$mpurl.'page=1"><b>|</b>< </td>' : '').
($curpage > 1 ? '<td> <a href="'.$mpurl.'page='.($curpage - 1).'"><</a> </td>' : '');
for($i = $from; $i <= $to; $i++) {
$multipage .= $i == $curpage ? '<td bgcolor="'.ALTBG2.'"> <u><b>'.$i.'</b></u> </td>' :
'<td> <a href="'.$mpurl.'page='.$i.'">'.$i.'</a> </td>';
} $multipage .= ($curpage < $pages ? '<td> <a href="'.$mpurl.'page='.($curpage + 1).'">></a> </td>' : '').
($curpage + $page - $offset <= $pages ? '<td> <a href="'.$mpurl.'page='.$pages.'">><b>|</b></a> </td>' : '').
($curpage == $maxpages ? '<td> <a href="misc.php?action=maxpages&pages='.$maxpages.'">><b>?</b></a> </td>' : '').
($pages > $page ? '<td style="padding: 0"><input type="text" name="custompage" size="2" style="border: 1px solid '.BORDERCOLOR.'" onKeyDown="javascript: if(window.event.keyCode == 13) window.location=\''.$mpurl.'page=\'+this.value;"></td>' : ''); $multipage = $multipage ? '<table cellspacing="0" cellpadding="0" border="0"><tr><td height="3"></td></tr><tr><td>'.
'<table cellspacing="'.INNERBORDERWIDTH.'" cellpadding="2" class="tableborder"><tr bgcolor="'.ALTBG1.'" class="smalltxt"><td class="header"> '.$num.' </td><td class="header"> '.$curpage.'/'.$realpages.' </td>'.$multipage.'</tr></table>'.
'</td></tr><tr><td height="3"></td></tr></table>' : '';
}
return $multipage;
}
里面的形参都表示什么呀...
$num 记录数
$perpage 每页显示多少条记录
$curr_page 当前页数
$mpurl 页号的连接地址
它还是那个它,别的没动<?php// Template Class
// Based on Discuz template Functionsclass Template { var $classname = 'Template';
var $tpl_root = 'template/';
var $tpl_cache_root = 'sitedata/template/';
var $tpl_name = 'default';
var $tpl_file_ext = 'htm';
function parse_template($tplfile, $objfile)
{
global $language;
$nest = 5;
if(!@$fp = fopen($tplfile, 'r')) {
exit("Current template file '".$tplfile."' not found or have no access!");
}
$template = fread($fp, filesize($tplfile));
fclose($fp);
$var_regexp = "((\\\$[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)(\[[a-zA-Z0-9_\"\'\$\x7f-\xff]+\])*)";
$const_regexp = "([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)";
$template = preg_replace("/([\n\r]+)\t+/s", "\\1", $template);
$template = preg_replace("/\<\!\-\-\{(.+?)\}\-\-\>/s", "{\\1}", $template);
$template = preg_replace("/\{lang\s+(.+?)\}/ies", "languagevar('\\1')", $template);
$template = str_replace("{LF}", "<?=\"\\n\"?>", $template);
$template = preg_replace("/\{(\\\$[a-zA-Z0-9_\[\]\'\"\$\x7f-\xff]+)\}/s", "<?=\\1?>", $template);
$template = preg_replace("/$var_regexp/es", "addquote('<?=\\1?>')", $template);
$template = preg_replace("/\<\?\=\<\?\=$var_regexp\?\>\?\>/es", "addquote('<?=\\1?>')", $template);
$template = preg_replace("/\s*\{template\s+(.+?)\}\s*/is", "\n<?php if (!\$tmp_tpl_obj) \$tmp_tpl_obj = new Template('".$this->tpl_root."', '".$this->tpl_cache_root."');\n\$tmp_tpl_obj->set_tpl_name ('".$this->tpl_name."');\ninclude \$tmp_tpl_obj->parse('\\1'); ?>\n", $template);
$template = preg_replace("/\s*\{eval\s+(.+?)\}\s*/ies", "stripvtags('\n<?php \\1 ?>\n','')", $template);
$template = preg_replace("/\s*\{elseif\s+(.+?)\}\s*/ies", "stripvtags('\n<?php } elseif(\\1) { ?>\n','')", $template);
$template = preg_replace("/\s*\{else\}\s*/is", "\n<?php } else { ?>\n", $template);
for($i = 0; $i < $nest; $i++) {
$template = preg_replace("/\s*\{loop\s+(\S+)\s+(\S+)\}\s*(.+?)\s*\{\/loop\}\s*/ies", "stripvtags('\n<? if(is_array(\\1)) { foreach(\\1 as \\2) { ?>','\n\\3\n<? } } ?>\n')", $template);
$template = preg_replace("/\s*\{loop\s+(\S+)\s+(\S+)\s+(\S+)\}\s*(.+?)\s*\{\/loop\}\s*/ies", "stripvtags('\n<? if(is_array(\\1)) { foreach(\\1 as \\2 => \\3) { ?>','\n\\4\n<? } } ?>\n')", $template);
$template = preg_replace("/\s*\{if\s+(.+?)\}\s*(.+?)\s*\{\/if\}\s*/ies", "stripvtags('\n<? if(\\1) { ?>','\n\\2\n<? } ?>\n')", $template);
}
$template = preg_replace("/\{$const_regexp\}/s", "<?=\\1?>", $template);
$template = preg_replace("/ \?\>[\n\r]*\<\? /s", " ", $template);
if(!@$fp = fopen($objfile, 'w')) {
exit("Directory '".$this->tpl_root.'/'.$this->tpl_cache_root."' not found or have no access!");
}
flock($fp, 3);
fwrite($fp, $template);
fclose($fp);
}
function language($file)
{
$tpldir = $this->tpl_root.'/'.$this->tpl_name;
$templateid = $templateid ? $templateid : 0;
$languagepack = $this->tpl_dir.$file.'.lang.php';
if(file_exists($languagepack)) {
return $languagepack;
}
else {
return FALSE;
}
}
function parse($file)
{
global $page_time, $page_time_start;
$tpl_dir = $this->tpl_root.'/'.$this->tpl_name.'/';
$this->tpl_dir = str_replace ('//', '/', $tpl_dir);
$tplfile = $this->tpl_dir.$file.'.'.$this->tpl_file_ext;
$objfile = $this->tpl_cache_root.'/'.$this->tpl_name.'_'.$file.'.tpl.php';
if (!file_exists($tplfile)) {
$tplfile = $this->tpl_root.'/default/'.$file.'.'.$this->tpl_file_ext;
$objfile = $this->tpl_cache_root.'/default_'.$file.'.tpl.php';
}
if ((@filemtime($tplfile) > @filemtime($objfile)) || (!@file_exists($objfile))) {
$this->parse_template($tplfile, $objfile);
}
list($usec, $sec) = explode(" ",microtime());
$page_time_end = $usec + $sec;
$page_time = sprintf ("%0.6f", $page_time_end - $page_time_start);
return ($objfile);
}
function Template($root, $cache_dir)
{
$this->tpl_root = $root;
$this->tpl_cache_root = $cache_dir;
}
function set_tpl_name($name)
{
$tpl_dir = $this->tpl_root.'/'.$this->tpl_name.'/';
if ($name != '' && is_dir ($tpl_dir))
$this->tpl_name = $name;
}
}function addquote($var)
{
return str_replace("\\\"", "\"", preg_replace("/\[([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)\]/s", "['\\1']", $var));
}
function languagevar($var)
{
if(isset($GLOBALS['language'][$var])) {
return $GLOBALS['language'][$var];
}
else {
return "!$var!";
}
}
function stripvtags($expr, $statement)
{
$expr = str_replace("\\\"", "\"", preg_replace("/\<\?\=(\\\$[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\[\]\"\'\x7f-\xff]*)\?\>/s", "\\1", $expr));
$statement = str_replace("\\\"", "\"", $statement);
return $expr.$statement;
}
?>懒得再加别的了……