首页 » PHP » 阅读文章

内容分页之PHP源码剖析

2011-03-14 14:29 2697 0 发表评论
标签:

所谓内容分页,就是根据你自己设定的标签,将较长的内容按你设置的标签来进行分页,本文涉及的两个地方,一个是地址的获取,网上有很多这样的分页教程,但是地址都是固定的,如果页面中有评论分页以及文章ID调用过来,就会非常麻烦;

CSS:

DIV.digg {PADDING-RIGHT: 3px; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; MARGIN: 3px; PADDING-TOP: 3px; TEXT-ALIGN: center}

DIV.digg A {BORDER-RIGHT: #aaaadd 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #aaaadd 1px solid; PADDING-LEFT: 5px; PADDING-BOTTOM: 2px; MARGIN: 2px; BORDER-LEFT: #aaaadd 1px solid; COLOR: #000099; PADDING-TOP: 2px; BORDER-BOTTOM: #aaaadd 1px solid; TEXT-DECORATION: none}

DIV.digg A:hover {BORDER-RIGHT: #000099 1px solid; BORDER-TOP: #000099 1px solid; BORDER-LEFT: #000099 1px solid; COLOR: #000; BORDER-BOTTOM: #000099 1px solid}

DIV.digg A:active {BORDER-RIGHT: #000099 1px solid; BORDER-TOP: #000099 1px solid; BORDER-LEFT: #000099 1px solid; COLOR: #000; BORDER-BOTTOM: #000099 1px solid}

DIV.digg SPAN.current {BORDER-RIGHT: #000099 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #000099 1px solid; PADDING-LEFT: 5px; FONT-WEIGHT: bold; PADDING-BOTTOM: 2px; MARGIN: 2px; BORDER-LEFT: #000099 1px solid; COLOR: #fff; PADDING-TOP: 2px; BORDER-BOTTOM: #000099 1px solid; BACKGROUND-COLOR: #000099}

DIV.digg SPAN.disabled {BORDER-RIGHT: #eee 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #eee 1px solid; PADDING-LEFT: 5px; PADDING-BOTTOM: 2px; MARGIN: 2px; BORDER-LEFT: #eee 1px solid; COLOR: #ddd; PADDING-TOP: 2px; BORDER-BOTTOM: #eee 1px solid}

PHP代码:

<?php

$contents=”fjka;fjsa;#page#批量生[newpage]#page#成分成文#page#件并且加#page#上分页代码”; //带了分页标签的原内容

$cons=”fjka;fjsa;adsfasdfas码”; //不带分页标签的原内容

function conpage($contents) {

$pagesss=’#page#’; //设定分页标签

$a=strpos($contents,$pagesss);

if($a){

$con=explode($pagesss,$contents);

$cons=count($con);

@$p = ceil($_GET[‘p’]);

if(!$p||$p<0) $p=1;

$url=$_SERVER[“REQUEST_URI”];

$parse_url=parse_url($url);

$url_query=$parse_url[“query”];

if($url_query){

$url_query=ereg_replace(“(^|&)p=$p”,””,$url_query);

$url=str_replace($parse_url[“query”],$url_query,$url);

if($url_query) $url.=”&p”; else $url.=”p”;

}else {

$url.=”?p”;

}

if($cons<=1) return false;//只有一页时不显示分页

$pagenav=”<div class=\”digg\”>”;

for($i=1;$i<=$cons;$i++){

if($i==$p){

$pagenav.='<span class=”current”>’.$p.'</span>’;

}else{

$pagenav.=”<a href=’$url=$i’>$i</a>”;

}

}

$pagenav.=”</div>”;

return $con[$p-1].$pagenav;

}else{

return $contents;

}

}

echo conpage($contents); //带有分页标签

echo conpage($cons); //不带分页标签的

?>

另外发一个内容分页函数:

<?php
 /**
  * 函数名:ContentsPages
  * 功能:文章内容分页
  * 参数:$url文章内容页URL 类型string,$contents文章内容页内容 类型string,$ptext分页标识 类型string
  * 作者:jwzzsw
  */
function ContentsPages($url,$contents,$ptext = '#page#')
{
    //文章数组

    $arr = explode($ptext,$contents);
    //数组长度&总页数

    $total = count($arr);
    //当前页

    $nowpage = $_GET[‘pages’]?$_GET[‘pages’]:1;
    //上页

    $prepage = $nowpage==1?1:$nowpage-1;
    //下页

    $nextpage = $nowpage>$total-1?$total:$nowpage+1;
    //最后一页

    $lastpage = $total;
    $pdiv = ‘<br /><div style=\”height:30px;width:500px;border:1px; blackground-color:#ff0000;\”>’;
    $pdiv .= “第{$nowpage}页 / 总{$total}页&nbsp;&nbsp;”;
    //首页链接

    $pdiv .= “<li style=\”display:inline;\”><a href=\”{$url}&pages=1\” style=\”text-decoration:none;\”>首页</a></li>”;
    //上页链接

    $pdiv .= “<li style=\”display:inline;\”><a href=\”{$url}&pages={$prepage}\” style=\”text-decoration:none;\”>&nbsp;&nbsp;上一页&nbsp;&nbsp;</a></li>”;
    //显示分页列表

    $color = ”;
    for($i = 1; $i<=$total; $i++)
    {
        if($i == $nowpage)
        {
            $color= “color:#ff0000;”;
        }
        else
        {
            $color = ”;
        }
        $pdiv .= “&nbsp;&nbsp;<li style=\”display:inline;\”><a href=\”{$url}&pages={$i}\” style=\”text-decoration:none;\”><span style=\”{$color}\”>{$i}</span></a></li>”;
    }
    //下页链接

    $pdiv .= “&nbsp;&nbsp;<li style=\”display:inline;\”><a href=\”{$url}&pages={$nextpage}\” style=\”text-decoration:none;\”>&nbsp;&nbsp;下一页</a></li>”;
    //末页链接

    $pdiv .= “<li style=\”display:inline;\”><a href=\”{$url}&pages={$lastpage}\” style=\”text-decoration:none;\”>&nbsp;&nbsp;末页&nbsp;&nbsp;</a></li>”;
    $pdiv .= ‘</div>’;
    //输出内容

    echo $arr[$nowpage-1];
    //不分页则不显示分页列表

    if( $total <=1) $pdiv = ”;
    //输出分页列表

    echo $pdiv;
}
?>

本文地址:http://www.jwzzsw.com/archives/780.html

文章作者:思悟
版权所有 © 转载时请以链接形式注明作者和原始出处!

评论 共0条 (RSS 2.0) 发表评论

  1. 暂无评论,快抢沙发吧。

发表评论

联系我 Contact Me

回到页首