在新的项目中遇到需要在文章列表页显示文章内容的开头几行纯文字部分,因为后台是通过富文本编辑器添加的文章,直接返回的数据是带有格式的数据,造成列表页样式混乱,所以需要去除格式返回纯文本数据。
/** * 去除Html所有标签、空格以及空白,并截取字符串(包括中文) * @param string $string 字符串 * @param number $sublength 字符串长度 * @param string $encoding 编码方式 * @param string $ellipsis 省略号 */ function cutstr_html($string,$sublength,$encoding = \'utf-8\',$ellipsis = \'…\'){ $string = strip_tags($string); $string = trim($string); $string = mb_ereg_replace("\t","",$string); $string = mb_ereg_replace("\r\n","",$string); $string = mb_ereg_replace("\r","",$string); $string = mb_ereg_replace("\n","",$string); $string = mb_ereg_replace(" ","",$string); if(mb_strlen(trim($string),\'utf-8\') < $sublength){ return trim($string).$ellipsis; }else{ return mb_strcut(trim($string),0,$sublength,$encoding).$ellipsis; } } //测试字符串 $str=\'<p style="microsoft yahei, arial; vertical-align: baseline; list-style-type: none; text-indent: 28px; line-height: 25px; text-align:center;margin-top: 12px; margin-bottom: 12px; padding: 0px; border: 0px; font-size: 14px;color:red;"> fherfhewkolfjlkdsjfld</p>\'; //调用方法测试 echo cutstr_html($string=$str,$sublength=5,$encoding=\'utf-8\',$ellipsis=\'...\');
这样输出的就是长度为5的纯文本字符串,就可以放在文章列表中显示了。
转载:https://blog.csdn.net/qq_36129701/article/details/83823283