php长文章分页代码一例

功能要求:
文章列表页,如果用strip_tags删除了所有的样式,则首页的文章简介会显得很乱,没有样式。
如果简单的用strip_tags保留p或者br,那么再截取字符串时会有p或者br被截断的情况。

设计思路为:保留p和br,然后替换p为br;再以br为分隔符对整个文章进行分隔。

完整代码:
/** 
* 长文章分段 
* @param string $article 文章内容 
* @param number $return_number 文章字节限制 
* @return array 
*/  
private function ContentAddpage($content,$return_number=800){  
    $return_content = "";    //返回的字符串  
    $current_num = 0;        //当前字符串长度  
    $return_content_num = 0; //上次字符串截取后的长度;用来处理最后数组中字数过长的case.  
    $page_num_word = array();//以br为分隔符使用preg_split分隔字符串生成的数组;  
  
    $content = strip_tags($content,'<p>,<br>');  
    $content = preg_replace("/<p(.*?)>/m", "<br>",  $content);  
    $content = str_replace("</p>","",  $content);  
    $content = preg_replace("/<br(.*?)>/m", "<br>",  $content);  
    $content_info = preg_split("/\<br\>/",$content);//根据字符串确定段落  
    $art_num = count($content_info);//确定段落数  www.jbxue.com
  
    for($i=0;$i <= $art_num-1;$i++){  
        $page_num_word[$i] = strlen($content_info[$i]);  
        $current_num += $page_num_word[$i];//得到字数  
        if ($current_num <= $return_number){  
            $tmp_num = $return_number-$current_num;  
            $return_content .= mb_substr($content_info[$i],0,$tmp_num)."<br>";  
            $return_content_num = $current_num;  
        }else{  
            $tmp_num = $return_number-$return_content_num;  
            $return_content .= mb_substr($content_info[$i],0,$tmp_num)."<br>";  
            break;  
        }  
    }  
    return $return_content;  
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值