亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > PHP > 正文

php對包含html標簽的字符串進行截取的函數分享

2020-03-22 20:21:05
字體:
來源:轉載
供稿:網友
這個方法的作用是: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=' !-- break -- '){ $_lenth = mb_strlen($str, "utf-8"); // 統計字符串長度(中、英文都算一個字符) if($_lenth = $lenth){ return $str; // 傳入的字符串長度小于截取長度,原樣返回 $strlen_var = strlen($str); // 統計字符串長度(UTF8編碼下-中文算3個字符,英文算一個字符) if(strpos($str, ' ') === false){ return mb_substr($str, 0, $lenth); // 不包含 html 標簽 ,直接截取 if($e = strpos($str, $anchor)){ return mb_substr($str, 0, $e); // 包含截斷標志,優先 $html_tag = 0; // html 代碼標記 $result = ''; // 摘要字符串 $html_array = array('left' = array(), 'right' = array()); //記錄截取后字符串內出現的 html 標簽,開始= left,結束= right * 如字符串為: h3 p b a /b /h3 ,假設p未閉合,數組則為:array('left'= array('h3','p','b'), 'right'= 'b','h3'); * 僅補全 html 標簽, % 等其它語言標記,會產生不可預知結果 for($i = 0; $i $strlen_var; ++$i) { if(!$lenth) break; // 遍歷完之后跳出 $current_var = substr($str, $i, 1); // 當前字符 if($current_var == ' '){ // html 代碼開始 $html_tag = 1; $html_array_str = ''; }else if($html_tag == 1){ // 一段 html 代碼結束 if($current_var == ' '){ $html_array_str = trim($html_array_str); //去除首尾空格,如 br / img src="" / 等可能出現首尾空格 if(substr($html_array_str, -1) != '/'){ //判斷最后一個字符是否為 /,若是,則標簽已閉合,不記錄 // 判斷第一個字符是否 /,若是,則放在 right 單元 $f = substr($html_array_str, 0, 1); if($f == '/'){ $html_array['right'][] = str_replace('/', '', $html_array_str); // 去掉 '/' }else if($f != ' '){ // 若是 ,則為 PHP 代碼,跳過 // 若有半角空格,以空格分割,第一個單元為 html 標簽。如: h2 p if(strpos($html_array_str, ' ') !== false){ // 分割成2個單元,可能有多個空格,如: h2 class="" id="" $html_array['left'][] = strtolower(current(explode(' ', $html_array_str, 2))); }else{ //若沒有空格,整個字符串為 html 標簽,如: b p 等,統一轉換為小寫 $html_array['left'][] = strtolower($html_array_str); $html_array_str = ''; // 字符串重置 $html_tag = 0; }else{ $html_array_str .= $current_var; //將 之間的字符組成一個字符串,用于提取 html 標簽 }else{ --$lenth; // 非 html 代碼才記數 $ord_var_c = ord($str{$i}); switch (true) { case (($ord_var_c & 0xE0) == 0xC0): // 2 字節 $result .= substr($str, $i, 2); $i += 1; break; case (($ord_var_c & 0xF0) == 0xE0): // 3 字節 $result .= substr($str, $i, 3); $i += 2; break; case (($ord_var_c & 0xF8) == 0xF0): // 4 字節 $result .= substr($str, $i, 4); $i += 3; break; case (($ord_var_c & 0xFC) == 0xF8): // 5 字節 $result .= substr($str, $i, 5); $i += 4; break; case (($ord_var_c & 0xFE) == 0xFC): // 6 字節 $result .= substr($str, $i, 6); $i += 5; break; default: // 1 字節 $result .= $current_var; if($html_array['left']){ //比對左右 html 標簽,不足則補全 $html_array['left'] = array_reverse($html_array['left']); //翻轉left數組,補充的順序應與 html 出現的順序相反 foreach($html_array['left'] as $index = $tag){ $key = array_search($tag, $html_array['right']); // 判斷該標簽是否出現在 right 中 if($key !== false){ // 出現,從 right 中刪除該單元 unset($html_array['right'][$key]); }else{ // 沒有出現,需要補全 $result .= ' /'.$tag.' return $result.$replace; }PHP教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲视频在线观看| 国产在线观看精品一区二区三区| 日韩在线中文字| 久久五月情影视| 亚洲欧洲日产国码av系列天堂| 亚洲一区中文字幕在线观看| 精品香蕉一区二区三区| 久久久久久国产免费| 亚洲成年人在线播放| 一区二区三区www| 在线精品高清中文字幕| 国产精品国产福利国产秒拍| 热久久免费视频精品| 68精品国产免费久久久久久婷婷| 日韩精品久久久久久久玫瑰园| 国产精品免费观看在线| 92福利视频午夜1000合集在线观看| 亚洲欧洲av一区二区| 国产脚交av在线一区二区| 国产精品久久电影观看| 日韩中文字幕第一页| 成人www视频在线观看| 欧美自拍大量在线观看| 亚洲精品视频播放| 国产精品第10页| 中文字幕日韩免费视频| 国产精品久久久久久中文字| 日韩欧美成人网| 2019亚洲男人天堂| 岛国精品视频在线播放| 亚洲精品资源美女情侣酒店| 亚洲人成啪啪网站| 成人性教育视频在线观看| 日韩在线视频网站| 欧美一级大片在线观看| 亚洲成人av资源网| 91福利视频在线观看| 最新69国产成人精品视频免费| 久久精品国产视频| 欧美日韩一二三四五区| 欧美国产亚洲视频| 成人av色在线观看| www国产亚洲精品久久网站| 日韩成人在线观看| 国产亚洲精品一区二555| 在线观看不卡av| 一区二区三区回区在观看免费视频| 精品久久香蕉国产线看观看亚洲| 日韩精品免费在线| 国产手机视频精品| 91在线观看免费高清完整版在线观看| 久久成年人免费电影| 欧美日韩亚洲精品一区二区三区| 日韩极品精品视频免费观看| 日韩欧美中文字幕在线播放| 91欧美日韩一区| 亚洲变态欧美另类捆绑| 欧美伊久线香蕉线新在线| 91免费在线视频网站| 丝袜亚洲欧美日韩综合| 亚洲色图偷窥自拍| 精品偷拍一区二区三区在线看| 亚洲影院色在线观看免费| 欧美极品第一页| 久久精品久久久久电影| 在线视频一区二区| 色播久久人人爽人人爽人人片视av| 欧美裸体xxxxx| 成人日韩在线电影| 亚洲精品电影网站| 91精品国产综合久久男男| 日韩av在线精品| 热久久免费视频精品| 国产在线观看精品一区二区三区| 欧美精品videosex极品1| 久久久99久久精品女同性| 午夜精品久久久久久99热| 久久偷看各类女兵18女厕嘘嘘| 国产一区二区三区毛片| 亚洲国产精久久久久久久| 欧美成人激情视频免费观看| 亚洲无线码在线一区观看| 欧美一区二区三区艳史| 97在线看免费观看视频在线观看| 68精品国产免费久久久久久婷婷| 久久精品久久久久| 日韩在线免费视频观看| 成人亚洲综合色就1024| 欧美成人中文字幕在线| 亚洲精品一区久久久久久| 波霸ol色综合久久| 亚洲偷熟乱区亚洲香蕉av| 亚洲桃花岛网站| 国产成人av在线播放| 成人福利视频网| 欧美日韩国产va另类| 亚洲xxx大片| 91人人爽人人爽人人精88v| 日本精品性网站在线观看| 精品久久久中文| 欧美午夜精品在线| 久久久成人的性感天堂| 亚洲伊人久久综合| 欧美日韩在线免费| 正在播放亚洲1区| 欧美老肥婆性猛交视频| 亚洲精品久久久久中文字幕二区| 国产精品午夜视频| 亚洲国产小视频在线观看| 8090成年在线看片午夜| 91精品久久久久久久久久久久久| 97精品伊人久久久大香线蕉| 亚洲国产婷婷香蕉久久久久久| 91久久久久久| 亚洲免费伊人电影在线观看av| 欧洲成人性视频| 成人网在线视频| 91在线视频导航| 全亚洲最色的网站在线观看| 精品精品国产国产自在线| 热re91久久精品国99热蜜臀| 91热福利电影| 精品久久久久久久久国产字幕| 亚洲精品国产精品自产a区红杏吧| 国产91精品久久久久| 久久久久五月天| 亚洲护士老师的毛茸茸最新章节| 中文字幕av一区中文字幕天堂| 亚洲精品小视频| 中文在线资源观看视频网站免费不卡| 97在线免费观看| 国产精品自产拍在线观看中文| 亚洲午夜精品视频| 精品自拍视频在线观看| 亚洲日韩第一页| 欧美日韩国产成人高清视频| 亚洲国产精品久久久| 亚洲美女在线视频| 国产精品扒开腿爽爽爽视频| 欧美福利在线观看| 色噜噜亚洲精品中文字幕| 国产精品第三页| 欧美激情在线狂野欧美精品| 欧美日韩中国免费专区在线看| 伊人精品在线观看| 欧美性少妇18aaaa视频| 欧美在线观看一区二区三区| www.久久久久| 国产视频欧美视频| 久久精品男人天堂| 国产91露脸中文字幕在线| 成人av.网址在线网站| 亚洲人成在线播放| 亚洲乱码一区av黑人高潮| 亚洲天堂免费在线| 国产精品电影久久久久电影网| 色与欲影视天天看综合网| 亚洲国产一区二区三区在线观看| 久久久999成人| 久久久欧美精品| 国产精品黄页免费高清在线观看| 国产91在线播放九色快色| 精品国产自在精品国产浪潮| 欧美激情精品久久久久久免费印度|