欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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各属性值
            
    
    博客分类: 境-PHP2 正则匹配获取IMG获取IMG和属性值正则获取 
 

 

 

 

 

 

 

 

 

 

 

 

  • PHP 正则获取IMG各属性值
            
    
    博客分类: 境-PHP2 正则匹配获取IMG获取IMG和属性值正则获取 
  • 大小: 70.6 KB