PHP 正则获取IMG各属性值
程序员文章站
2024-01-25 11:42:28
...
<?php header('Content-Type: text/html; charset=utf-8'); /** * $str,要进行处理的内容 * $ext,要匹配的扩展名 */ function img_match($str,$ext){ $list = array(); //先取出所有img标签文本 $c1 = preg_match_all('/<img\s.*?>/', $str, $m1); //对所有的img标签进行取属性 for($i=0; $i<$c1; $i++){ //匹配出所有的属性 $c2 = preg_match_all('/(\w+)\s*=\s*(?:(?:(["\'])(.*?)(?=\2))|([^\/\s]*))/', $m1[0][$i], $m2); //将匹配完的结果进行结构重组 for($j=0; $j<$c2; $j++) { $list[$i][$m2[1][$j]] = !empty($m2[4][$j]) ? $m2[4][$j] : $m2[3][$j]; } } return $list; } //罗列图片后缀从而实现多扩展名匹配 $ext = 'jpg|jpeg|gif|bmp|png'; //模仿一个网站 $str = <<<___ <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8"> <title>阅谁问君诵,水落清香浮</title> </head> <body> <img src="http://dl2.iteye.com/upload/attachment/0126/9800/65dcffd0-304b-3d61-b48e-ca9f0393dfd3.jpg" alt="img1" title="img1" onClick="test();"> <p>onestopweb.iteye.com</p> <img src="http://dl2.iteye.com/upload/attachment/0126/9802/9190af90-ba41-3901-b9e0-dda6d9e9b378.jpg" alt="img2" title="img2" onClick="test2();"> <img src="http://dl2.iteye.com/upload/attachment/0126/9804/25b3a4bc-0625-3483-8fcb-c21a8b813708.jpg" title="img3" onClick="test();"> <img src="http://dl2.iteye.com/upload/attachment/0126/9806/e54a93ad-f3bf-38ec-8194-952a387a6785.jpg" alt="img4" title="img4"> </body> </html> ___; //测试效果 $img_list = img_match($str,$ext); var_dump($img_list);
效果图:
推荐阅读
-
PHP 正则获取IMG各属性值
-
php正则表达式匹配img中任意属性的方法
-
php正则取img标记中任意属性(正则替换去掉或改变图片img标记中的_PHP
-
java正则表达式获取指定HTML标签的指定属性值且替换的方法
-
php正则取img标记中任意属性(正则替换去掉或改变图片img标记中的任意属性)_PHP教程
-
Java基于正则表达式获取指定HTML标签指定属性值的方法
-
php正则取img标记中任意属性(正则替换去掉或改变图片img标记中的任意属性)
-
php正则表达式匹配img中任意属性的方法
-
C#正则表达式获取下拉菜单(select)的相关属性值
-
php正则取img标记中任意属性(正则替换去掉或改变图片img标记中的任意属性)