php截取字符串并保留完整xml标签的函数代码
2015-01-24信息快讯网
截取字符串并保留完整xml标签的php代码,有需要的朋友可以参考下
<?php /** * author: goosman * blog: http://blog.csdn.net/lgg201 * mail: [email protected] */ $str = '0123456789<a>012</a>0123456789'; function substr_remain_tag($s, $o, $l) { $is_match = preg_match_all(<<<heredoc #该正则表达式解析xml标签, 标签属性内部支持转义符"\", 支持对"\"自身和对应引号的转义 <(\w+) #标签开始 (?: #属性列表 \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 < $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);
php 如何获取数组第一个值
php number_format() 函数通过千位分组来格式化数字的实现代码
php实现统计邮件大小的方法
php addslashes 利用递归实现使用反斜线引用字符串
如何使用PHP批量去除文件UTF8 BOM信息
PHP自动识别字符集并完成转码详解
浅析51个PHP处理字符串的函数
通过table标签,PHP输出EXCEL的实现方法
table标签的结构与合并单元格的实现方法
php的数组与字符串的转换函数整理汇总
php字符串截取的简单方法
PHP删除HTMl标签的三种解决方法
PHP删除HTMl标签的实现代码
解析thinkphp中的导入文件标签
解析smarty 截取字符串函数 truncate的用法介绍
解析使用substr截取UTF-8中文字符串出现乱码的问题
php中使用preg_replace函数匹配图片并加上链接的方法
php中存储用户ID和密码到mysql数据库的方法
php中使用__autoload()自动加载未定义类的实现代码
php中使用preg_match_all匹配文章中的图片
php中使用addslashes函数报错问题的解决方法
php中设置index.php文件为只读的方法
php中将字符串转为HTML的实体引用的一个类
php中删除字符串中最先出现某个字符的实现代码
关于mysql字符集设置了character_set_client=binary 在gbk情况下会出现表描述是乱码的情况
PHP中计算字符串相似度的函数代码
PHP编码转换函数 自动转换字符集支持数组转换
thinkPHP的Html模板标签使用方法
真正根据utf8编码的规律来进行截取字符串的函数(utf8版sub_str )
php标签云的实现代码
php使HTML标签自动补全闭合函数代码
比较discuz和ecshop的截取字符串函数php版
PHP 修复未正常关闭的HTML标签实现代码(支持嵌套和就近闭合)
php截取后台登陆密码的代码
PHP substr 截取字符串出现乱码问题解决方法[utf8与gb2312]
PHPWind与Discuz截取字符函数substrs与cutstr性能比较