问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

php如何使用正则表达式匹配url图片啊

发布网友 发布时间:2022-04-06 04:42

我来回答

4个回答

懂视网 时间:2022-04-06 09:04

php正则表达式替换图片地址的方法:首先PHP正则提取图片img标记中的任意属性;然后提取width、height、src;最后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*imgs+[^>]*?srcs*=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);
?>

相关学习推荐:php编程(视频)

热心网友 时间:2022-04-06 06:12

可以这样:

$image = "http://xxxxxxxxx.jpg"
preg_match("/(http:\/\/)?\w+\.jpg/",$image,$matches);//http://可要可不要
echo $matches[0];//$matches[0]即为匹配的图片路径

以上只是匹配jpg类型的图片

如果要匹配其他类型可以这样使用

preg_match("/(http:\/\/)?\w+\.(jpg|jpeg|gif|png)/",$image,$matches);
echo $matches[0];

热心网友 时间:2022-04-06 07:30

$image = '<img src="/avatar/100/r6s1g11.jpg" />';
preg_match('/src="(.*?(jpg|jpeg|gif|png))/', $image, $url);
echo $url[1];

网页上的图片都是使用IMG标签加载的,所以在匹配的时候是以 src=" 开始匹配,很多人会觉得为什么不是以 http:// 开始匹配,那是因为图片地址会有相对地址(如:"/xxx/xxx.jpg")和绝对地址(如:"http://www.xxx.com/xxx/xxx.jpg")两种情况,相对地址是没有 http:// 的,所以为了这两种情况都能匹配,故以 src=" 是最好的。

".*" 是匹配多个字符的意思,?号的意思是只匹配到第一个出现的jpg或jpeg、gif、png。

因为图片有很多格式类型,所以用"(jpg|jpeg|gif|png)"来匹配多个类型,"|"是或者的意思。

热心网友 时间:2022-04-06 09:04

$a = '<img alt="PHPimg" src="https://gss0.baidu.com/7LsWdDW5_xN3otqbppnN2DJv/reon/abpic/item/c1eb922389152670ac34de5d.jpg">';
preg_match("/http\:([^\"\']+)\.jpg/i", $a, $m);
print_r($m);

追问http://hiphotos.baidu.com/reon/abpic/item/c1eb922389152670ac34de5d.jpg;dsfsdf;http://hiphotos.baidu.com/reon/abpic/item/c1eb922389152670ac34de5d.jpg
不对啊,上面只有一条记录啊,要俩条才对的,前后覆盖了

追答如果是多条,用preg_match_all

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...DE分别在BC AC上,且AE=CD,连接AD,BE交于点p 过B作BQ⊥AD Q为垂足... ...AC上的点,且AE=CD 连接AD BE 交于点P 作BQ垂 ...ac上的点,且ae=cd,连接ad、be交于点p作BQ⊥AD,垂足为Q,求证BP=2... ...AC上的点,且AE=CD,链接AD、BE交于点P,作BQ⊥AD ...AC上的点,且AE=CD,连结AD、BE交于点P,作BQ⊥AD,垂足为Q. ...刚刚大学毕业。由于生病,导致目前没有工作,大学四年的女友也因为我... 形容“荷花的特点”有什么词语 梦见比人还高大的石头蛤蟆,杀人拆房子。我和其他人一起翘辫子了._百度... 梦见别人送我一条蛇,我却把他不小心放了.可是我用石头打了它一下... 作文 我生活在鼓励中 求php中正则表达式过滤或者替换掉特定图片路径的图片 请问怎样用php 正则表达式取设置宽和高的[img][&#47;img]标签里面的图片地址 如何用正则表达式修改图片路径? php正则表达式替换图片地址 如何关闭php安全模式? 想请教各位,如何学习PHP,求具体学习步骤?越详细越好,求PHP高人指点?不胜感激。。 500分!DREAMHOST 如何自己配置PHP.INI? 如何开启(关闭)PHP的iconv模块 怎么关闭phpstorm的注释 怎样关闭PHP服务? 求解这段PHP代码是什么意思,作用是什么 [php学习]请教1个魔术引号修正函数 PHP:什么是魔术引号 怎样打开“魔术引号(Magic Quote)GPC” 跪求各位php高手,为什么不能判断用户名重复,不知道哪里错了?? php+mysql注册时用户名不能相同的代码 用php写网站时,用txt存用户名,如何解决多个用户同时登录和注册问题 如何用php实现一个账号不能多个用户同时登陆? 如何用php实现一个账号不能多个用户同时登陆 怎样防止一个用户名重复登陆,该如何处理 php用正则表达式替换img中src的路径。 求教php正则高手。php正则获取html内容中的所有img路径及名称,替换img的路径 php 如何用正则表达式修改图片地址 我想用正则表达式去替换一个图片路径,但要保持图片名称跟替换前一样的,要怎么写怎么写才能达到这个效果 php 正则表达式怎么把图片URL匹配出来呢? php如何用正则表达式抓取网页中的图片地址? 请问PHP里怎么用正则表达式给HTML代码里的所有图片加上本身的链接 求php中正则表达式从html代码中获取图片路径 求一段php里替换图片尺寸的正则表达式 深圳magento建站教您如何去掉域名后面index.php.html 安装Magento时自动跳转到/index.php/install/怎么解决 php空间如何安装zend php获取表中所有查询出来的结果数据 PHP怎么获取mysql迭代查询的数据。 PHP抓取四六级查询结果 在PHP中使用SQL语句 怎么取出查询出来的最后一个数据? PHP+MYSQL取得所有MYSQL查询结果 怎样在php中实现查询结果的输出 php能把图片做成高斯模糊吗 网站中鼠标经过一个商品的图片图片就变得模糊了一点,鼠标移开就正常了,用php怎么实现这个问题