Home  >  Article  >  Backend Development  >  php正则取img标记中任意属性(正则替换去掉或改变图片img标记中的任意属性)_php技巧

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

WBOY
WBOYOriginal
2016-05-17 08:55:48698browse

因有一项目新闻发布系统,数据库内容字段中存储的是原图的路径(当然还有其他文字内容啦,内容里插图时,存的是图片路径),但前台想使用缩略图,琢磨1小时余,得到以下结果,可解决问题(取img标签会了,取别的标签任意属性自然也会了):

复制代码 代码如下:

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

$word = '

111 22

php正则取img标记中任意属性(正则替换去掉或改变图片img标记中的任意属性)_php技巧
中国人
';
//取整个图片代码
preg_match('/*img/s+[^>]*?src/s*=/s*(/'|/")(.*?)//1[^>]*?//?/s*>/i',$word,$matches);
echo $matches[0];//结果:php正则取img标记中任意属性(正则替换去掉或改变图片img标记中的任意属性)_php技巧

$word = '

111 22

php正则取img标记中任意属性(正则替换去掉或改变图片img标记中的任意属性)_php技巧
中国人
';
//取width
preg_match('/php正则取img标记中任意属性(正则替换去掉或改变图片img标记中的任意属性)_php技巧/i',$word,$matches);
echo $matches[1];

//取height
preg_match('/php正则取img标记中任意属性(正则替换去掉或改变图片img标记中的任意属性)_php技巧/i',$word,$matches);
echo $matches[1];

//取src
preg_match('/php正则取img标记中任意属性(正则替换去掉或改变图片img标记中的任意属性)_php技巧/i',$word,$matches);
echo $matches[1];

/*正则替换去掉或改变图片img标记中的任意属性***************************************************************/
$str = '

111 22

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

31313 224344

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

//改变src属性(此处将原来的src="http://files.jb51.net/upload/images/bbb.jpg"改变为src="http://files.jb51.net/upload/_thumbs/Images/bbb.jpg")
print preg_replace('/(php正则取img标记中任意属性(正则替换去掉或改变图片img标记中的任意属性)_php技巧)/i',"/${1}_thumbs/Images//${3}",$str);

/*改变src属性,
此处将原来的src="http://files.jb51.net/upload/images/bbb.jpg"改变为src="http://files.jb51.net/upload/_thumbs/Images/bbb.jpg",并舍弃宽和高
(比如你想在前台显示缩略图,但数据库中存储的是原图的路径。为什么要舍弃宽高??你缩略图啊!还是原图的宽高,会怎样???)
*/
print preg_replace('/(php正则取img标记中任意属性(正则替换去掉或改变图片img标记中的任意属性)_php技巧/i',"/${1} /${2}_thumbs/Images//${3}>",$str);
?>
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn