background image

PHP 实例:PHP 正则提取或替换 img 标记属性

本篇文章是对 PHP 正则提取或替换 img 标记属性进行了详细的分析介绍,需要的朋

友参考下

<?php

/*PHP 正则提取图片 img 标记中的任意属性*/

$str = '<center><img src="/uploads/images/20100516000.jpg" height="120" width="120"><br 
/>PHP 正则提取或更改图片 img 标记中的任意属性</center>';
//1、取整个图片代码
preg_match('/<\s*img\s+[^>]*?src\s*=\s*(\'|\")(.*?)\\1[^>]*?\/?\s*>/i',$str,$match);
echo $match[0];
//2、取 width
preg_match('/<img.+(width=\"?\d*\"?).+>/i',$str,$match);
echo $match[1];
//3、取 height
preg_match('/<img.+(height=\"?\d*\"?).+>/i',$str,$match);
echo $match[1];
//4、取 src
preg_match('/<img.+src=\"?(.+\.(jpg|gif|bmp|bnp|png))\"?.+>/i',$str,$match);
echo $match[1];

/*PHP 正则替换图片 img 标记中的任意属性*/

//1、将 src="/uploads/images/20100516000.jpg"替换为
src="/uploads/uc/images/20100516000.jpg")
print preg_replace('/(<img.+src=\"?.+)(images\/)(.+\.(jpg|gif|bmp|bnp|png)\"?.+>)/i',"\
${1}uc/images/\${3}",$str);
echo "<hr/>";
//2、将 src="/uploads/images/20100516000.jpg"替换为
src="/uploads/uc/images/20100516000.jpg",并省去宽和高
print preg_replace('/(<img).+(src=\"?.+)images\/(.+\.(jpg|gif|bmp|bnp|png)\"?).+>/i',"\${1} \
${2}uc/images/\${3}>",$str);
?>