php截取字符串并保留完整xml标签的函数代码_PHP
/**
* 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标签, 标签属性内部支持转义符"\", 支持对"\"自身和对应引号的转义
(?: #属性列表
\s+ #前置空格
\w+ #属性名
\s* #属性名后的空白(为了兼容)
= #属性名值之间的等号
\s* #属性值前的空白(为了兼容)
(?: #属性值(引号处理)
" #双引号的情况
(?:
\\\\\\\\ #吃掉连续两个转义符(表示转义符自身)
\\\\" #吃掉转义符接着一个引号(表示转义的引号)
[^"\\\\]* #其他字符
)*
"
' #单引号情况
(?:
\\\\\\\\ #吃掉连续两个转义符(表示转义符自身)
\\\\' #吃掉转义符接着一个引号(表示转义的引号)
[^'\\\\]* #其他字符
)*
'
)
)*
>
.*? #标签内容
(?1)> #结束标签
;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]);
#标签右边界在截取目标右边界内, 继续
if ( $o0 + $l0
#以下为标签跨边界处理
$l = $o0 + $l0 - $o;
break;
}
}
return substr($s, $o, $l);
}
echo $str . chr(10);
echo substr_remain_tag($str, 0, 20) . chr(10);

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

Go语言是一种强大且灵活的编程语言,它提供了丰富的字符串处理功能,包括字符串截取。在Go语言中,我们可以使用切片(slice)来截取字符串。接下来,将详细介绍如何在Go语言中截取字符串,并附上具体的代码示例。一、使用切片截取字符串在Go语言中,可以使用切片表达式来截取字符串的一部分。切片表达式的语法如下:slice:=str[start:end]其中,s

截取方法:1、截取单个字符,语法“string[index]”,其中“string”表示源字符串,“index”表示要获取的字符下标;2、截取子串,语法“string[start : end]”,其中“start”表示要截取的第一个字符所在的索引(截取时包含该字符),“end”表示要截取的最后一个字符所在的索引(不包含该字符);3、获取整个字符串,语法“string[:]”。

如何使用MySQL中的LEFT函数截取字符串的左边部分在数据库管理系统中,经常会遇到需要从字符串中截取某部分的情况。MySQL提供了许多内置的字符串函数,其中包括LEFT函数,它可以用于截取字符串的左边部分。LEFT函数的语法如下:LEFT(str,length)其中,str是要被截取的字符串,length是要截取的长度。接下来,我们将通过代码示例来演示如

PHP中的substr()函数:如何截取字符串的一部分,需要具体代码示例在PHP编程中,字符串的处理是非常常见的操作之一。而截取字符串的一部分则是处理字符串时经常遇到的需求。在PHP中,我们可以使用内置的substr()函数来截取字符串的一部分。本文将详细介绍substr()函数的用法,并给出具体的代码示例。substr()函数的基本用法如下:string

利用MySQL的LEFT函数截取字符串的指定长度在MySQL中,我们经常需要对字符串进行截取操作,以满足特定需求。其中,LEFT函数是一个非常实用的函数,可以截取字符串的指定长度。本文将介绍如何使用MySQL的LEFT函数进行字符串截取,并给出代码示例。首先,我们需要了解一下LEFT函数的语法。LEFT函数的基本语法如下:LEFT(string,lengt

MySQL中如何使用RIGHT函数截取字符串的右边部分在MySQL中,RIGHT函数是用来截取字符串右边部分的函数。它接受两个参数:待截取的字符串和待截取的长度,返回一个包含指定长度的字符串。使用RIGHT函数可以非常方便地获取字符串的右边部分。下面我们将通过代码示例来演示如何使用RIGHT函数。首先,我们需要创建一个示例数据表,用于存储待截取的字符串。CR

js使用substring()方法、使用slice()方法、使用substr()方法和使用split()方法截取字符串。详细介绍:1、substring()方法,接受两个参数,分别是起始位置和结束位置;2、slice()方法,允许使用负数作为参数,表示从字符串末尾开始计算索引;3、substr()方法,接受两个参数,分别是起始位置和要截取的字符数;4、split()方法等等。

golang是一种强大的编程语言,可以用来编写各种类型的应用程序。其中,使用正则表达式验证XML标签的属性值是golang中的一项基础技能。本文将介绍如何在golang中使用正则表达式验证XML标签的属性值。XML是一种标记语言,常用于在网络上交换数据。它的语法结构非常严格,每个元素都必须包含一个标签和一组属性。在使用XML时,经常需要验证标签属性的值是否符
