php长文章分页代码分享
在php中如何对长文章进行分页?
实现需求:
文章列表页,如果用strip_tags删除了所有的样式,则首页的文章简介会显得很乱,没有样式。
如果简单的用strip_tags保留p或者br,那么再截取字符串时会有p或者br被截断的情况。
设计思路为:保留p和br,然后替换p为br;再以br为分隔符对整个文章进行分隔。
例子,php长文章分页代码。
/**
* 长文章分段
* @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);//确定段落数
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;
}
您可能感兴趣的文章:
您可能感兴趣的文章:
入门级PHP简单分页代码
php分页代码实例有注释
php长文章分页的实现代码
php 文章分页的实现代码
php长文章分页代码分享
PHP防止跨域提交表单的解决方法
php简单分页代码一例
php fck文章分页
php获得数组长度(元素个数)的方法
PHP页面跳转的几种方式