`
化蝶自在飞
  • 浏览: 2333620 次
  • 性别: Icon_minigender_2
  • 来自: 武汉
社区版块
存档分类
最新评论

php正则提取img标签各属性值

    博客分类:
  • php
php 
阅读更多
<?php
/*
create by tuzwu@qq.com for http://www.xiaojudeng.com
*/
$ext = 'gif|jpg|jpeg|bmp|png';//罗列图片后缀从而实现多扩展名匹配 by http://www.k686.com 绿色软件
$str = '<p><img title="小桔灯分类信息网" alt="小桔灯分类信息网" onload="ResizeImage(this,860)" src="http://www.xiaojudeng.com/uploadfile/2011/0910/20110910102454887.jpg" /></p><p><img title="小桔灯分类信息网" alt="小桔灯分类信息网" onload="ResizeImage(this,860)" src="http://www.xiaojudeng.com/uploadfile/2011/0910/20110910102455105.jpg" /></p><p><img title="小桔灯分类信息网" alt="小桔灯分类信息网" onload="ResizeImage(this,860)" src="http://www.xiaojudeng.com/uploadfile/2011/0910/20110910102459367.jpg" /></p>';

$list = array();	//这里存放结果map
$c1 = preg_match_all('/<img\s.*?>/', $str, $m1);	//先取出所有img标签文本
for($i=0; $i<$c1; $i++) {	//对所有的img标签进行取属性
	$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];
	}
}
print_r($list);	//查看结果变量

?>

输出结果如下:
---------- php ----------
Array
(
    [0] => Array
        (
            [title] => 小桔灯分类信息网
            [alt] => 小桔灯分类信息网
            [onload] => ResizeImage(this,860)
            [src] => http://www.xiaojudeng.com/uploadfile/2011/0910/20110910102454887.jpg
        )

    [1] => Array
        (
            [title] => 小桔灯分类信息网
            [alt] => 小桔灯分类信息网
            [onload] => ResizeImage(this,860)
            [src] => http://www.xiaojudeng.com/uploadfile/2011/0910/20110910102455105.jpg
        )

    [2] => Array
        (
            [title] => 小桔灯分类信息网
            [alt] => 小桔灯分类信息网
            [onload] => ResizeImage(this,860)
            [src] => http://www.xiaojudeng.com/uploadfile/2011/0910/20110910102459367.jpg
        )

)

输出完毕 (耗时 0 秒) - 正常终止


下面是另外一个写法的,充分证明此正则方法可以完美匹配img标签的各属性:
<?php
/*
create by tuzwu@qq.com for http://www.xiaojudeng.com
*/

$str = <<<EOT
<img src = "http://www.xiaojudeng.com/uploadfile/2011/0910/20110910100916470.jpg" class ='image x1' alt="小桔灯分类信息网" shuxing =shux />
<img src = "http://www.xiaojudeng.com/uploadfile/2011/0910/20110910100916803.jpg" class ='image x2' alt='小桔灯分类信息网' title=abc shuxing =shux />
这里是小桔灯分类信息网 http://www.xiaojudeng.com
<a href="http://www.xiaojudeng.com/" class="a" alt=abc shuxing="shux" />只取得img标签
EOT;

$list = array();	//这里存放结果map
$c1 = preg_match_all('/<img\s.*?>/', $str, $m1);	//先取出所有img标签文本
for($i=0; $i<$c1; $i++) {	//对所有的img标签进行取属性
	$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];
	}
}
print_r($list);	//查看结果变量

?>

输出结果如下:
---------- php ----------
Array
(
    [0] => Array
        (
            [src] => http://www.xiaojudeng.com/uploadfile/2011/0910/20110910100916470.jpg
            [class] => image x1
            [alt] => 小桔灯分类信息网
            [shuxing] => shux
        )

    [1] => Array
        (
            [src] => http://www.xiaojudeng.com/uploadfile/2011/0910/20110910100916803.jpg
            [class] => image x2
            [alt] => 小桔灯分类信息网
            [title] => abc
            [shuxing] => shux
        )

)

输出完毕 (耗时 0 秒) - 正常终止
分享到:
评论

相关推荐

    PHP 正则获取IMG各属性值

    在本主题“PHP 正则获取IMG各属性值”中,我们将深入探讨如何利用PHP的正则表达式功能来解析HTML代码,特别是针对`&lt;img&gt;`标签,提取其各个属性的值,如`src`、`alt`、`width`和`height`等。 首先,我们需要理解HTML...

    解析PHP正则提取或替换img标记属性

    对于提取img标签的src属性,可以使用以下正则表达式: ```php preg_match('/&lt;img.+src=\"?(.+\.(jpg|gif|bmp|png))\"?.+&gt;/i', $str, $match); echo $match[1]; ``` 这个表达式包含以下几个部分: - `&lt;img.+src=\"?...

    php正则取img标记中任意属性(正则替换去掉或改变图片img标记中的任意属性)

    总的来说,通过使用正则表达式,我们可以方便地在PHP中处理HTML文档中的`img`标签,提取或修改其属性。这种方法对于新闻发布系统或者其他需要动态处理图像链接的Web应用来说非常实用,可以轻松实现从原始图片路径到...

    php正则表达式匹配img中任意属性的方法

    通过这个正则表达式,我们可以获取到整个&lt;img&gt;标签,包括其中的src属性值。 2. 提取&lt;img&gt;标签中的width和height属性 - 提取width属性使用的正则表达式是`/&lt;img.+(width=\"?\d*\"?).+&gt;/i`。 - 提取height属性使用的...

    php正则提取html图片(img)src地址与任意属性的方法

    在本篇文档中,作者演示了如何使用PHP的正则表达式功能来提取HTML中的&lt;img&gt;标签的src属性值以及其他属性,如width和height。通过这种方式,开发者可以在处理HTML内容时,快速定位到需要的信息。 首先,文档提出一个...

    正则表达式提取img的src

    在PHP和JavaScript中应用该正则表达式来提取img标签的src属性值。 ##### PHP示例代码: ```php $str='&lt;center&gt;&lt;imgsrc="/uploads/images/***.jpg"height="120"width="120"&gt; ...&lt;/center&gt;'; preg_match('/*img\...

    PHP提取字符串中的图片地址[正则表达式]

    在提取图片地址的场景中,我们使用正则表达式来定义一个匹配&lt;img&gt;标签内src属性值的模式,然后通过PHP的正则表达式函数preg_match_all()来找出所有匹配的结果。 正则表达式中的关键点如下: - `/`:这是正则表达式...

    PHP 提取图片img标记中的任意属性的简单实例

    文章中的代码示例展示了如何通过正则表达式匹配并提取img标签的各种属性值,以及如何在提取属性值后对其进行修改。 2. img标签的属性 img标签是HTML中用于嵌入图片的标记,它可以包含多个属性,比如src(图片源...

    小谈php正则提取图片地址

    总结来说,PHP正则表达式是处理字符串匹配和提取的一种有效工具,尤其在提取网页中的图片URL时表现突出。然而,为了确保提取的准确性,正则表达式的设计需要考虑HTML标签和属性的各种可能变体,同时也要应对没有文件...

    PHP正则提取不包含指定网址的图片地址的例子

    在上述例子中,重点是如何使用PHP正则表达式来匹配和提取图片的`src`属性值,同时排除掉包含特定网址(本例中为`***`)的图片地址。这里使用的正则表达式模式是`#&lt;imgsrc="(?!http:\/\/img.baidu)([^"]+)"#`。这个...

    使用正则表达式去除所有html标签只保留文字

    对于一些复杂的HTML文档结构或者具有属性值的标签,简单的正则表达式可能无法正确处理所有情况。例如,脚本`&lt;script&gt;`、样式`&lt;style&gt;`以及注释`&lt;!-- --&gt;`内的内容可能会被错误地移除或保留。 此外,正则表达式匹配...

    PHP正则匹配操作简单示例【preg_match_all应用】

    这个正则表达式用于提取`&lt;img&gt;`标签的`src`属性值。 - `/`:正则表达式的分隔符,可以使用任何非字母数字的字符作为分隔符。 - `src="`:匹配`src="`字符串。 - `([^&lt;]*)`:捕获组,匹配任何不是`的字符,这将...

    正则表达式实例 网页前端开发

    )&gt;/is`,可以找到所有 `img` 标签及其 `src` 属性。`preg_match_all` 函数用于查找所有匹配项,然后循环遍历结果。 4. **分析域名**: 使用 `/https?:\/\/([^\/]+).*/i` 正则表达式,可以提取URL中的域名部分,`...

    正则获取图片地址 链接地址

    这个过程对网页内容进行分析,根据图片标签&lt;img&gt;的结构特征,编写能够正确匹配图片链接的正则表达式,然后通过程序代码实现对这些链接的提取。 在编写正则表达式时,一个常见的模式是使用&lt;img&gt;标签来识别图片资源。...

    PHP正则获取页面所有图片地址

    s*([^&gt;"'s]*)/i`的目的是在字符串中查找`&lt;img&gt;`标签,并且匹配其中的`src`属性值。其中: - `&lt;img`表示匹配`&lt;img`字符开始; - `.*`表示匹配任意数量的任意字符; - `srcs*`表示`src`字符串,后面跟着一个`s*`表示...

    php中使用preg_match_all匹配文章中的图片

    在本文档中,我们关注的是如何匹配文章中的图片,通常这涉及到查找HTML中`&lt;img&gt;`标签,并从中提取`src`属性的值。 2. **subject**:这是要搜索的目标字符串,即包含文章内容的字符串。 3. **matches**:这是一个...

    PHP提取数据库内容中的图片地址并循环输出

    在本例中,我们使用正则表达式来识别和提取HTML代码中`&lt;img&gt;`标签的`src`属性值。`src`属性通常包含了图片文件的路径和文件名。 在本例提供的正则表达式`/&lt;img.*?src=[\'|\"](.*?(?:[\.gif|\.jpg]))[\'|\"].*?[\/]?...

    php正则匹配文章中的远程图片地址并下载图片至本地

    这个表达式的作用是匹配出所有包含在`src`属性值中的图片链接,其后缀包括常见的图片格式如gif、jpg、jpeg、bmp、png。正则中的`isU`是修饰符,`i`表示不区分大小写,`s`使得`.`匹配包括换行符在内的所有字符,`U`...

    php利用正则表达式取出图片的URL

    为了提取HTML文档中的图片URL,我们需要构建一个正则表达式来匹配`&lt;img&gt;`标签中的`src`属性值。示例中的正则表达式为: ```php '/&lt;img\ssrc=\"(http:\/\/.+\.(jpg|gif|bmp|bnp))\"&gt;/i' ``` - **解释**: - `&lt;img\...

    php preg_match_all结合str_replace替换内容中所有img

    这段代码中,`$arr[0][$i]`是原始的`&lt;img&gt;`标签,`$arr[2][$i]`是匹配到的`src`属性值。将这两个值结合后,生成新`&lt;img&gt;`标签,`alt`属性被设置为"我的信息",而`src`属性保持不变。 整个函数`replace`的工作流程...

Global site tag (gtag.js) - Google Analytics