最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

php截取字符串并保留完整xml標簽的函數(shù)代碼

 更新時間:2013年02月06日 17:41:07   作者:  
截取字符串并保留完整xml標簽的php代碼,有需要的朋友可以參考下
復制代碼 代碼如下:

<?php 
    /**
     * author: goosman
     * blog: http://blog.csdn.net/lgg201
     * mail: lgg860911@yahoo.com.cn
     */ 

    $str    = '0123456789<a>012</a>0123456789'; 
    function substr_remain_tag($s, $o, $l) { 
        $is_match   = preg_match_all(<<<heredoc 

    #該正則表達式解析xml標簽, 標簽屬性內(nèi)部支持轉(zhuǎn)義符"\", 支持對"\"自身和對應引號的轉(zhuǎn)義 
    <(\w+)             #標簽開始 
        (?:          #屬性列表 
            \s+       #前置空格 
            \w+    #屬性名
            \s*    #屬性名后的空白(為了兼容) 
            =        #屬性名值之間的等號 
            \s*       #屬性值前的空白(為了兼容) 
            (?:         #屬性值(引號處理) 
                "         #雙引號的情況 
                (?: 
                    \\\\\\\\   #吃掉連續(xù)兩個轉(zhuǎn)義符(表示轉(zhuǎn)義符自身) 

                    \\\\"          #吃掉轉(zhuǎn)義符接著一個引號(表示轉(zhuǎn)義的引號) 

                    [^"\\\\]*   #其他字符 
                )* 
                " 

                '       #單引號情況 
                (?: 
                    \\\\\\\\   #吃掉連續(xù)兩個轉(zhuǎn)義符(表示轉(zhuǎn)義符自身) 

                    \\\\'   #吃掉轉(zhuǎn)義符接著一個引號(表示轉(zhuǎn)義的引號) 

                    [^'\\\\]*       #其他字符 
                )* 
                ' 
            ) 
        )* 
    > 
    .*?               #標簽內(nèi)容 
    </(?1)>     #結(jié)束標簽 
    ;x 
    heredoc 
    , $s, $matches, PREG_OFFSET_CAPTURE, $o); 
        if ( $is_match ) { 
            foreach ( $matches[0] as $match ) { 
                $o0 = $match[1]; 
                #標簽左邊界越過截取目標右邊界, 退出 
                if ( $o0 >= $o + $l ) break; 
                $l0 = strlen($match[0]); 
                #標簽右邊界在截取目標右邊界內(nèi), 繼續(xù) 
                if ( $o0 + $l0 < $o + $l ) continue; 

                #以下為標簽跨邊界處理 
                $l  = $o0 + $l0 - $o; 
                break; 
            } 
        } 
        return substr($s, $o, $l); 
    }  
    echo $str . chr(10); 
    echo substr_remain_tag($str, 0, 20) . chr(10);

相關(guān)文章

  • PHP基于ORM方式操作MySQL數(shù)據(jù)庫實例

    PHP基于ORM方式操作MySQL數(shù)據(jù)庫實例

    這篇文章主要介紹了PHP基于ORM方式操作MySQL數(shù)據(jù)庫,結(jié)合具體實例形式分析了php針對mysql數(shù)據(jù)庫常用操作的封裝與使用技巧,需要的朋友可以參考下
    2017-06-06
  • PHP中常用的魔術(shù)方法

    PHP中常用的魔術(shù)方法

    本篇文章主要介紹了PHP中常用的魔術(shù)方法的相關(guān)資料。具有很好的參考價值。下面跟著小編一起來看下吧
    2017-04-04
  • php實現(xiàn)計數(shù)器方法小結(jié)

    php實現(xiàn)計數(shù)器方法小結(jié)

    這篇文章主要介紹了php實現(xiàn)計數(shù)器方法,總結(jié)了三款非常實用的計數(shù)器實現(xiàn)方法,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-01-01
  • php繪制一條直線的方法

    php繪制一條直線的方法

    這篇文章主要介紹了php繪制一條直線的方法,主要涉及GD庫中imageline方法的使用技巧,需要的朋友可以參考下
    2015-01-01
  • PHP計劃任務、定時執(zhí)行任務的實現(xiàn)代碼

    PHP計劃任務、定時執(zhí)行任務的實現(xiàn)代碼

    PHP計劃任務、定時執(zhí)行任務的實現(xiàn)用到的函數(shù) ignore_user_abort(),set_time_limit(0),sleep($interval) 此代碼只要運行一次后關(guān)閉瀏覽器即可。
    2011-04-04
  • PHP排序算法的復習和總結(jié)

    PHP排序算法的復習和總結(jié)

    對于PHP中對數(shù)組的元素進行排序,這個是很經(jīng)常用到的,之前的項目中也有,而且對于幾種排序我們都是用的是asort arsort 等PHP原生函數(shù),沒有自己去實現(xiàn),所以就對一下的幾個函數(shù)進行總結(jié),這個會不斷的進行補充,自己也可以好好的復習和總結(jié)
    2012-02-02
  • php橋接模式應用案例分析

    php橋接模式應用案例分析

    這篇文章主要介紹了php橋接模式應用,結(jié)合具體案例形式分析了php橋接模式原理及信息發(fā)送相關(guān)應用技巧,需要的朋友可以參考下
    2019-10-10
  • php中禁止單個IP與ip段訪問的代碼小結(jié)

    php中禁止單個IP與ip段訪問的代碼小結(jié)

    今天網(wǎng)上有人問我php中如何禁用ip訪問,通過測試發(fā)現(xiàn)如下的代碼不錯,原理也比較簡單
    2012-07-07
  • PHP對象相關(guān)知識總結(jié)

    PHP對象相關(guān)知識總結(jié)

    這篇文章主要介紹了PHP對象相關(guān)知識總結(jié)的相關(guān)資料,需要的朋友可以參考下
    2017-04-04
  • php判斷兩個浮點數(shù)是否相等的方法

    php判斷兩個浮點數(shù)是否相等的方法

    這篇文章主要介紹了php判斷兩個浮點數(shù)是否相等的方法,涉及php操作浮點數(shù)的技巧,比較實用,需要的朋友可以參考下
    2015-03-03

最新評論

慈溪市| 乡城县| 稻城县| 洪洞县| 罗山县| 腾冲县| 滁州市| 沈阳市| 依安县| 搜索| 阿坝| 仁布县| 新宾| 花莲市| 平邑县| 安国市| 鹤壁市| 斗六市| 南川市| 锡林郭勒盟| 永春县| 江川县| 望城县| 高陵县| 龙陵县| 大冶市| 桐梓县| 南部县| 阿拉善右旗| 通榆县| 克什克腾旗| 视频| 鹤山市| 蒲江县| 吉首市| 英山县| 泸溪县| 巧家县| 铜川市| 西安市| 南岸区|