从博客的建立到发布了几套博客主题,所有的一切都是从零开始的,遇到什么问题就解决什么问题,这不遇到PHP正则提取HTML网页中的图片的地址以及各个属性的问题,今天记录下,以后遇到这样的问题好做个参考。
以下代码来自网络,本站只做一下记录,在实际运用中还要以项目中的实际流程来判断。
简单的代码:
<?php header("Content-Type: text/html;charset=utf-8"); $str = '<div> <a rel="nofollow" href="#" ><img width="131" height="177" src="http://files.jb51.net/file_images/game/201702/2017020716154162.jpg"/> <h3>2016年</h3></a> </div>'; $imgpreg = "/<img (.*?) src=\"(.+?)\".*?>/"; preg_match($imgpreg,$str,$img); $mycount=count($img)-1; $imgval = $img[$mycount]; if(!empty($imgval)){ echo $imgval; }else{ echo 'no'; } ?>
代码说明:
1、通过正规判断$str内容中的图片并提示图片地址到数组中
2、判断数组是否为空,然后做出相应的动作
3、此方法只适合图片较少的HTML内容
进化代码
<?php /*PHP正则提取图片img标记中的任意属性*/ $str = '<center><img src="/uploads/images/2017020716154162.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/2017020716154162.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/2017020716154162.jpg",并省去宽和高 print preg_replace('/(<img).+(src=\"?.+)images\/(.+\.(jpg|gif|bmp|bnp|png)\"?).+>/i',"\${1} \${2}uc/images/\${3}>",$str); ?>
这个代码比较详细,只是给大家一个思路,具体的操作还要根据自己的情况来。
如果你有比较好的,利用PHP的正规表达式来提取HTML内容中的图片的方法,可以在下面留言或留下你的文章的地址,我会转录过来。
到此这篇关于php正则提取html内的图片任意属性的方法就介绍到这了。青春的路上充满了彷徨。青春的热血在我们的身体中流淌,叛逆的力量在沉默中爆发。叛逆、 嚣张、 标新立异···是我们的标识。我们渴望成长,渴望挣脱种种的束缚,却又羽翼未丰。我们渴望能够独当一面,渴望被认可,却又能力不足。我们有满腔的基情与理想,可又无法释放。于是,我们纷纷发表独立宣言,希望得到大人世界的认可,我们纷纷反抗,希望挣脱束缚。我们徘徊在梦想与堕落的边缘,不知路在何方。更多相关php正则提取html内的图片任意属性的方法内容请查看相关栏目,小编编辑不易,再次感谢大家的支持!