设计的初衷是:文章列表页,如果用strip_tags删除了所有的样式,则首页的文章简介会显得很乱,没有样式。如果简单的用strip_tags保留p或者br,那么再截取字符串时会有p或者br被截断的情况。
设计思路为:保留p和br,然后替换p为br;再以br为分隔符对整个文章进行分隔。
具体代码如下:可直接使用
将产品展示、购物管理、资金管理等功能相结合,并提供了简易的操作、丰富的功能和完善的权限管理,为用户提供了一个低成本、高效率的网上商城建设方案包含PowerEasy CMS普及版,主要功能模块:文章频道、下载频道、图片频道、留言频道、采集管理、商城模块、商城日常操作模块500个订单限制(超出限制后只能查看和删除,不能进行其他处理) 无订单处理权限分配功能(只有超级管理员才能处理订单)
/**
* 长文章分段
* @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,',
');
$content = preg_replace("/
/m", "
", $content);
$content = str_replace("
","", $content);
$content = preg_replace("/
/m", "
", $content);
$content_info = preg_split("/\
/",$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)."
";
$return_content_num = $current_num;
}else{
$tmp_num = $return_number-$return_content_num;
$return_content .= mb_substr($content_info[$i],0,$tmp_num)."
";
break;
}
}
return $return_content;
}










