这个方法的作用是:php截取含有html标签的字符串,如果标签未闭合就闭合标签,防止未闭合的标签破坏原网页布局。截取完之后将多余的内容替换为...或者其他任意字符,支持锚点指定替换到指定位置。
/** ============================== 截取含有 html标签的字符串 =========================* @param (string) $str 待截取字符串* @param (int) $lenth 截取长度* @param (string) $repalce 超出的内容用$repalce替换之(该参数可以为带有html标签的字符串)* @param (string) $anchor 截取锚点,如果截取过程中遇到这个标记锚点就截至该锚点处* @return (string) $result 返回值* @demo $res = cut_html_str($str, 256, '...'); //截取256个长度,其余部分用'...'替换* -------------------------------------------------------------------------------* $ author: wang jian. | email: wj@yurendu.com | date: 2014/03/16* ===============================================================================*/ function cut_html_str($str, $lenth, $replace='', $anchor=''){ $_lenth = mb_strlen($str, utf-8); // 统计字符串长度(中、英文都算一个字符) if($_lenth array()); //记录截取后字符串内出现的 html 标签,开始=>left,结束=>right /* * 如字符串为:a,假设p未闭合,数组则为:array('left'=>array('h3','p','b'), 'right'=>'b','h3'); * 仅补全 html 标签,<? <% 等其它语言标记,会产生不可预知结果 */ for($i = 0; $i $tag){ $key = array_search($tag, $html_array['right']); // 判断该标签是否出现在 right 中 if($key !== false){ // 出现,从 right 中删除该单元 unset($html_array['right'][$key]); }else{ // 没有出现,需要补全 $result .= ''; } } } return $result.$replace; }
http://www.bkjia.com/phpjc/825402.htmlwww.bkjia.comtruehttp://www.bkjia.com/phpjc/825402.htmltecharticle这个方法的作用是:php截取含有html标签的字符串,如果标签未闭合就闭合标签,防止未闭合的标签破坏原网页布局。截取完之后将多余的内...