ホームページ >バックエンド開発 >PHPチュートリアル >PHP は文字列をインターセプトし、完全な XML タグ関数を保持します。 code_PHP チュートリアル

PHP は文字列をインターセプトし、完全な XML タグ関数を保持します。 code_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:13:571120ブラウズ

コードをコピーします コードは次のとおりです:

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

$str = '01234567890120123456789'; 
    function substr_remain_tag($s, $o, $l) { 
        $is_match   = preg_match_all(<<
#该正则表达式解析xml标签, 标签属性内部支持转义符"\", 支持对"\"自身和对应引号的转义
<(\w+) #标签开始
(?: #属性列表
\s+ #前置空格
\w+ #属性名
\s* #属性名后的空白(为了兼容)
= #属性名值之间的等号
\s* #属性值前的空白(为了兼容)
(?: #属性值(引号处理)
" #双引号的情况
(?:
\\\\\\\\ #吃掉连续两个转义符(表示转义符自身)

\\\\" #吃掉转义符接着一个引号(表示转义的引号)

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

' #单引号情况
(?:
\\\\\\\\ #吃掉连续两个转义符(表示转义符自身)

\\\\' #吃掉转义符接着一个引号(表示转义的引号)

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

    .*?               #标签内容 
         #结束标签 
    ;x 
    heredoc 
    , $s, $matches, PREG_OFFSET_CAPTURE, $o); 
        if ( $is_match ) { 
            foreach ( $matches[0] as $match ) { 
                $o0 = $match[1]; 
                #标签左边界越过截取目标右边界, 退出 
if ( $o0 >= $o + $l ) ブレーク
使用する 使用する 使用する 使用する 使用する 使用する 使用する 使用する 使用する 使用する 使用する 使用する 使用する 使用する 使用する 使用する' s ‐ ‐ ‐‐‐‐‐ と ; $o + $l ) 続けます。
);
echo $str .
echo substr_remain_tag($str, 0, 2) 0) . (10);



http://www.bkjia.com/PHPjc/326438.html

www.bkjia.com

tru​​e

http://www.bkjia.com/PHPjc/326438.html
技術記事

次のようにコードをコピーします: ?php /*** 著者: goosman * ブログ: http://blog.csdn.net/lgg201 * メール: lgg860911@yahoo.com.cn*/ $str = '0123456789a012/a0123456789';
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。