利用正则提取Html字符串中img的相关属性
时间:2011-12-17
来源:互联网
PHP code
如上所示的一个Html字符串,我需要写正则表达式来提取图片的相关属性,包括图片的width,height,src,title,alt,align等属性,我自己在网上找了些资料,也尝试着提取,但结果有些不对,对正则的语法不太熟。
PHP code
我想要在最终结果是:
取整个图片代码:<img title=\"测试\" alt=\"测试\" align=\"left\" src=\"/jmlt/kindeditor/attached/image/20111217/20111217065616_27638.jpg\" width=\"200\" height=\"100\" />
取width:200
取height:100
取src:/jmlt/kindeditor/attached/image/20111217/20111217065616_27638.jpg
取title:测试
$str = '<p>234324234</p><img title=\"测试\" alt=\"测试\" align=\"left\" src=\"/jmlt/kindeditor/attached/image/20111217/20111217065616_27638.jpg\" width=\"200\" height=\"100\" /> <p> </p>';
如上所示的一个Html字符串,我需要写正则表达式来提取图片的相关属性,包括图片的width,height,src,title,alt,align等属性,我自己在网上找了些资料,也尝试着提取,但结果有些不对,对正则的语法不太熟。
PHP code
/*PHP正则提取图片img标记中的任意属性*/ $str = '<p>234324234</p><img title=\"测试\" alt=\"测试\" align=\"left\" src=\"/jmlt/kindeditor/attached/image/20111217/20111217065616_27638.jpg\" width=\"200\" height=\"100\" /> <p> </p>'; //1、取整个图片代码 preg_match('/<\s*img\s+[^>]*?src\s*=\s*(\'|\")(.*?)\\1[^>]*?\/?\s*\/>/i',$str,$match); echo "取整个图片代码:" . $match[0] . "<br/>"; //2、取width preg_match('/<img.+(width=\\\"?\d*\\\"?).+>/i',$str,$match); echo "取width:" . $match[1] . "<br/>"; //3、取height preg_match('/<img.+(height=\\\"?\d*\\\"?).+>/i',$str,$match); echo "取height:" . $match[1] . "<br/>"; //4、取src preg_match('/<img.+src=\\\"?(.+\.(jpg|gif|bmp|bnp|png))\\\"?.+>/i',$str,$match); echo "取src:" . $match[1] . "<br/>"; //4、取title preg_match('/<img.+(title=\\\"?\d*\\\"?).+>/i',$str,$match); echo "取title:" . $match[1] . "<br/>";
我想要在最终结果是:
取整个图片代码:<img title=\"测试\" alt=\"测试\" align=\"left\" src=\"/jmlt/kindeditor/attached/image/20111217/20111217065616_27638.jpg\" width=\"200\" height=\"100\" />
取width:200
取height:100
取src:/jmlt/kindeditor/attached/image/20111217/20111217065616_27638.jpg
取title:测试
作者: yanggang82 发布时间: 2011-12-17
PHP code
Array
(
[0] => <img title=\"测试\" alt=\"测试\" align=\"left\" src=\"/jmlt/kindeditor/attached/image/20111217/20111217065616_27638.jpg\" width=\"200\" height=\"100\" />
[1] => \"
[2] => 测试
[3] => /jmlt/kindeditor/attached/image/20111217/20111217065616_27638.jpg
[4] => 200
[5] => 100
)
preg_match('/<img\s*title=(\\\")([^"]*)\\1[^src]*src=\\1([^"]*)\\1\s*width=\\1([^"]*)\\1\s*height=\\1([^"]*)\\1[^>]*>/i',$str,$match); print_r($match);
Array
(
[0] => <img title=\"测试\" alt=\"测试\" align=\"left\" src=\"/jmlt/kindeditor/attached/image/20111217/20111217065616_27638.jpg\" width=\"200\" height=\"100\" />
[1] => \"
[2] => 测试
[3] => /jmlt/kindeditor/attached/image/20111217/20111217065616_27638.jpg
[4] => 200
[5] => 100
)
作者: jordan102 发布时间: 2011-12-17
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28