这期内容当中小编将会给大家带来有关利用php怎么截取字符串并保留完整的xml标签,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
代码如下:
& lt; ? php
,,,/* *
,,,,*作者:goosman
,,,,*博客:http://blog.csdn.net/lgg201
,,,,*电子邮件:lgg860911@yahoo.com.cn
,,,,*/,
,,,str 美元;,,=& # 39;0123456789 & lt; a> 012 & lt;/a> 0123456789 & # 39;,,
,,,函数substr_remain_tag(年代,o,美元$ l) {,
,,,,,,,is_match 美元,=preg_match_all (& lt; & lt; & lt; heredoc
,,,#该正则表达式解析xml标签,标签属性内部支持转义符“\“支持对“\“自身和对应引号的转义,
,,,& lt; (\ w +),,,,,,,,,,,,#标签开始,
,,,,,,,(?:,,,,,,,,,#属性列表,
,,,,,,,,,,,\ s +,,,,,,#前置空格,
,,,,,,,,,,,\ w +,,,#属性名
,,,,,,,,,,,\ s *,,,#属性名后的空白(为了兼容),
,,,,,,,,,,,=,,,,,,,#属性名值之间的等号,
,,,,,,,,,,,\ s *,,,,,,#属性值前的空白(为了兼容),
,,,,,,,,,,,(?:,,,,,,,,#属性值(引号处理),
,,,,,,,,,,,,,,,“,,,,,,,,#双引号的情况,
,,,,,,,,,,,,,,,(?:
,,,,,,,,,,,,,,,,,,,\ \ \ \ \ \ \ \,,#吃掉连续两个转义符(表示转义符自身),
,,,,,,,,,,,,,,,,,,,\ \ \ \“,,,,,,,,,#吃掉转义符接着一个引号(表示转义的引号),
,,,,,,,,,,,,,,,,,,,[^“\ \ \ \]*,,#其他字符,
,,,,,,,,,,,,,,,) *,
,,,,,,,,,,,,,,,“,
,,,,,,,,,,,,,,,& # 39;,,,,,,#单引号情况,
,,,,,,,,,,,,,,,(?:
,,,,,,,,,,,,,,,,,,,\ \ \ \ \ \ \ \,,#吃掉连续两个转义符(表示转义符自身),
,,,,,,,,,,,,,,,,,,,\ \ \ \ & # 39;,,#吃掉转义符接着一个引号(表示转义的引号),
,,,,,,,,,,,,,,,,,,,[^ & # 39;\ \ \ \]*,,,,,,#其他字符,
,,,,,,,,,,,,,,,) *,
,,,,,,,,,,,,,,,& # 39;,
,,,,,,,,,,,),
,,,,,,,) *,
,,,祝辞,
,,,. * ?,,,,,,,,,,,,,,#标签内容,
,,,& lt;/(? 1)的在,,,,#结束标签,
,,,x
,,,heredoc
,,,$ s $ matches, PREG_OFFSET_CAPTURE, o);美元,
,,,,,,,如果(is_match美元){,
,,,,,,,,,,,foreach ($ matches[0]匹配美元){,
,,,,,,,,,,,,,,,o0=匹配[1],美元,
,,,,,,,,,,,,,,,#标签左边界越过截取目标右边界,退出,
,,,,,,,,,,,,,,,if ($ o0祝辞=o + l)美元打破,,
,,,,,,,,,,,,,,,null