php匹配<img/>,添加width,height

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php匹配<img/>,添加width,height相关的知识,希望对你有一定的参考价值。

$str为在线编辑器存入数据库中,所以不确定有多少个<img/>标签
比如<img *** src="***" ****/>
匹配和替换为<img *** src="****" *** width="100" height="100"/>
就是把$str里面所有的img标签里面的判断图片长宽是否超过一定值,超过时,设置图片长宽,$str其他都不变
求代码 谢谢啦 小弟菜鸟!!!!新号 分不多 希望大家帮帮忙 谢谢了

参考技术A 这个问题你想复杂了,其实直接在前台用CSS样式控制就可以了。
比如你的通过编辑器编辑的内容最终在一个类样式为.content的DIV中显示,则添加样式
.content imgwidth:100px;height:100px;border:0px;
就可以控制这个DIV下所有的图像了,没必要去程序中处理。
或者通过JS控制也是可行的方法.
假设显示这些图片的DIV容器的ID是content
<div id="content"></div>

<script language="javascript">
function DrawImage(ImgD,w,h)
var image=new Image();
image.src=ImgD.src;
if(image.width>0 && image.height>0)
if(image.width/image.height>1)
if(image.width>w)
ImgD.width=w;
ImgD.height=(image.height*w)/image.width;
else
ImgD.width=image.width;
ImgD.height=image.height;


else
if(image.height>h)
ImgD.height=h;
ImgD.width=(image.width*h)/image.height;
else
ImgD.width=image.width;
ImgD.height=image.height;




var images =document.getElementById("content").getElementsByTagName("img");
for(var i=0;i<images.length;i++)
var img =images[i];
DrawImage(img,100,100);

</script>本回答被提问者采纳

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

经常和图片打交道,不得不用到一些提取图片中scr、alt、title、等的属性,这里总结给大家一些常用的,感觉还不错,比较通用! 
PHP正则表达式匹配img中任意属性PHP 

复制代码代码如下:

<?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]; (PS:T不错的php Q扣峮:276167802,验证:csl) 

/*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); 

?> 

 

PS:关于正则,本站还提供了2款非常简便实用的正则表达式在线工具供大家参考使用:

JavaScript正则表达式在线测试工具:http://tools.jb51.net/regex/javascript

正则表达式在线生成工具:http://tools.jb51.net/regex/create_reg









以上是关于php匹配<img/>,添加width,height的主要内容,如果未能解决你的问题,请参考以下文章

php简单正则匹配Img标签src内容采集?

PHP 正则表达式匹配 img ,PHP 正则提取或替换图片 img 标记中的任意属性。

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

使用 PHP 为每个 img 添加父级

求一段PHP的正则 我要匹配文本内所有的</h1>后的内容

PHP正则匹配img标签的正则 并获得alt属性的值