`

php对长文章进行分页处理

    博客分类:
  • PHP
阅读更多

具体效果请查看http://www.leisongwang.com

设计的初衷是:文章列表页,如果用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);//确定段落数

    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;
}

 原始文章:http://www.leisongwang.com/blogs/info?id=537cacd8c9a3t

分享到:
评论

相关推荐

    PHP实现长文章分页实例代码(附源码)

    通过本文结合实例采用php动态将长文章内容进行分页处理。 查看效果演示 源码下载 如何分页 手动分页:一般在编辑内容时加入特殊分页标记,如{pages},提交后,PHP程序会根据分页符处理分页,生成不同的静态页面。...

    php长文章智能分页完整版(伪原创seo可用)

    一个函数是处理这个标签,把文章分成1、2、3...页 可以跳过包含表格的文章,处理图片和链接等html元素不被分割。 转载请注明原作者: http://www.52link.net 叶藤 演示:http://www.52fengshou.cn

    PHP分页显示制作详细讲解

    对于web编程的老手来说,编写这种代码实在是和呼吸一样自 然,但是对于初学者来说,常常对这个问题摸不着头绪,因此特地撰写此文对这个问题进行详细的讲解,力求让看完这篇文章的朋友在看完以后对于分页显示的原理 ...

    php 分页原理详解

    相信每个学习PHP的新手都会对分页这个东西感觉很头疼,不过有了默默的这一水帖,你肯定会拍拍脑袋说,嘿,原来分页竟然如此简单?的确,现在请深呼吸一口新鲜的空气,仔细的听默默给你一点一点的分解。 假设我们要...

    easy-pagination:[只读]处理来自客户端的分页数据的通用方法

    以下是一些有助于您发现问题的要点: 您有一个PHP应用程序您必须处理来自客户的分页数据您讨厌一次又一次地解析“ page”和“ perPage”(或者您想调用这些参数) 或厌倦了“分页不适用于博客文章评论”并意识到您...

    canphp框架(php框架) v1.5.zip

    2、增强分页类,优化生成的分页网址,增加长文章内容分页功能 3、增强图片类,增加图片水印功能 4、增强系统错误处理类,可以显示出错的文件及出错的行和trace信息 5、增加模板扩展标签,如if,for,foreach标签...

    canphp框架(php框架) v1.5

    CanPHP框架 v1.5 升级日志:1、增加xml类,用于xml数据转换成php数组2、增强分页类,优化生成的分页网址,增加长文章内容分页功能3、增强图片类,增加图片水印功能4、增强系统错误处理类,可以显示出错的文件及出错...

    PHP分页详细讲解(有实例)

    对于web编程的老手来说,编写这种代码实在是和呼吸一样自然,但是对于初学者来说,常常对这个问题摸不着头绪,因此特地撰写此文对这个问题进行详细的讲解,力求让看完这篇文章的朋友在看完以后对于分页显示的原理和...

    PHP 分页原理分析,大家可以看看

    对于web编程的老手来说,编写这种代码实在是和呼吸一样自然,但是对于初学者来说,常常对这个问题摸不着头绪,因此特地撰写此文对这个问题进行详细的讲解,力求让看完这篇文章的朋友在看完以后对于分页显示的原理和...

    仿XP网站源码(PHP200菜鸟)dzx3.0版

    controller中的接收参数没有做处理!因学习时练的没有那么多时间做的很仔细! 有的功能也没能实现,学习PHP中积累的综合开发知识!刚开始学时是用混编写的。 后来学了MVC,感觉MVC真不错。(就进行了小改版) 后来又...

    默默小谈PHPMYSQL分页原理及实现

    相信每个学习PHP的新手都会对分页这个东西感觉很头疼,不过有了默默的这一水帖,你肯定会拍拍脑袋说,嘿,原来分页竟然如此简单?的确,现在请深呼吸一口新鲜的空气,仔细的听默默给你一点一点的分解。 假设我们要...

    PHP程序开发范例宝典III

    术、SQL查询相关技术、MySQL高级应用技术、字符串的处理技术、PHP面向对象编程技术、文件管理、图像和多媒体技术、信息提取与图表分析 技术、报表与打印技术、网络通信技术、PHP与XML技术、安全技术、PHP高级应用...

    php168整站2008 v5.0.rar

    软件介绍 一个集成了文章...增加关键字管理、增加自定义采集参数分页、用户组的权限进行了更详细的划分、增加来源地址的入库、出错提示页面的美化、标签功能 的进一步完善、内容页增加打印,字体大小与简繁体的切换等

    php网络开发完全手册

    15.3.7 结果集的分页 248 15.3.8 用户动态添加记录 249 15.3.9 用户动态更新记录 251 15.3.10 用户动态删除记录 253 15.4 使用PHP获取MySQL数据库的信息 255 15.4.1 获取数据库的信息 255 15.4.2 获取表的信息 256 ...

    PHP商城系统 V2.0.5 beta 2.rar

    商城系统正在进行深度优化!近期推出,模板将按照SEO标准重新制作!深度SEO处理,深度程序优化,删掉或合并部分不合理的地方!增加蜘蛛爬行日志及其他更多功能! 原系统衍生出来依赖默认皮肤的模板可能部分不可用!同时将...

Global site tag (gtag.js) - Google Analytics