导航:首页 > 编程语言 > php正则表达式图片地址

php正则表达式图片地址

发布时间:2022-09-06 16:48:20

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];
/*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中 ,在数据库中有一个文章表,现在我把文章查出来,怎么通过正则表达式获取文章里图片的地址

正则也不是说随便用的啊,起码要看你图片的链接地址是在哪里啊

③ php 正则表达式怎么把图片URL匹配出来呢

使用preg_match_all函数,即可实现你的要求。代码如下:

$str='<imgdatasrc="http://mm..com/mmbiz/2ItUdTx3iamOFK8QVqofnQ/640?tp=webp"data-s="300,640"data-ratio="0.625"data-w="400"style="box-sizing:border-box!important;width:auto!important;word-wrap:break-word!important;visibility:visible!important;"/>';

$pattern='/<img.*src="(.*?)"/';

preg_match_all($pattern,$str,$matches);

echo$matches[1][0];

//返回:http://mm..com/mmbiz/2ItUdTx3iamOFK8QVqofnQ/640?tp=webp

④ php如何用正则表达式抓取网页中的图片地址

当前标签的属性为:img(图片)
标签名称恭伐多和鼙古俄汰藩咯:Image3
图片地址是:index_files/dh_01.jpg
图片的宽:95,高:32。
标签的链接:index.asp

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

$image='<imgsrc="/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)"来匹配多个类型,"|"是或者的意思。

⑥ 请问怎样用php 正则表达式取设置宽和高的[img][/img]标签里面的图片地址

用php给你运行了一个

$txt='[img=442,296]图片地址1[/img]
[img=300,188]图片地址2[/img]
[img=120,206]图片地址3[/img]';
$re='/[img=(d+,d+)](S+?)[/img]/';//这里修改下,加上一个?防止以单行文本导致的定界符不准问题
$arr=[];
preg_match_all($re,$txt,$arr);
var_mp($arr);

运行结果如下

phptest.php
array(3){
[0]=>
array(3){
[0]=>
string(32)"[img=442,296]图片地址1[/img]"
[1]=>
string(32)"[img=300,188]图片地址2[/img]"
[2]=>
string(32)"[img=120,206]图片地址3[/img]"
}
[1]=>
array(3){
[0]=>
string(7)"442,296"
[1]=>
string(7)"300,188"
[2]=>
string(7)"120,206"
}
[2]=>
array(3){
[0]=>
string(13)"图片地址1"
[1]=>
string(13)"图片地址2"
[2]=>
string(13)"图片地址3"
}
}

//增加一个矩阵转换
$txt='[img=442,296]图片地址1[/img][img=300,188]图片地址2[/img][img=120,206]图片地址3[/img][img=120,206]wwww[/img]';
$re='/[img=(d+,d+)](S+?)[/img]/';

var_mp(preg_match_all_to_array($re,$txt));

functionpreg_match_all_to_array($re,$txt)
{
$arrs=[];
preg_match_all($re,$txt,$arrs);
if($arrs===false)
return$arrs;
//移除到总匹配数据
array_shift($arrs);
$return=[];
//获取矩阵纵长
$arrs_longitudinal=count($arrs);
for($i=0;$i<$arrs_longitudinal;$i++){
//获取单列横长
$arrs_transverse=count($arrs[$i]);
for($j=0;$j<$arrs_transverse;$j++){
$return[$j][$i]=$arrs[$i][$j];
unset($arrs[$i][$j]);
}
unset($arrs[$i]);
}
return$return;
}

⑦ php中用正则表达式获取html中所有图片网址

<?php
$html='你的html代码';
preg_match_all('/s+srcs?=s?['|"]([^'|"]*)/is',$html,$Array);
print_r($Array);
//$Array就是你想要的数组

⑧ 如何用正则表达式修改图片路径

其实不用正则表达式,用简单的IF语句就可以
首先把图片地址赋值到一个变量,然后利用explode函数通过第一个"/",截取域名,然后判断域名是否跟你指定的一样,然后根据判断进行下一步工作就可以..
都说用IF语句就可以
$url
=
'pic.abc.com';
//你指定的域名.
..........
通过explode函数截取图片地址
........
//判断
if($url
==
$reurl){
//reurl是指截取图片地址后的域名
$img
=
"PDE".$img;
}
//后面的就是不包含的情况,自己看情况写..

⑨ 求php中正则表达式从html代码中获取图片路径

<?php
$test = '<p>444<img height="768" width="1024" alt="" src="/uploadfiles/28/Tree.jpg" /></p>
<p>444<img height="768" width="1024" alt="" src="/uploadfiles/sf/Tree.jpg" /></p>
fsdafasdfasdfasdf
<p>444<img height="768" width="1024" alt="" src="/uploadfiles/28/elm.jpg" /></p>

sdfasdfasdf<p>
<p>444<img height="768" width="1024" alt="" src="/uploadfiles/28/maple.jpg" /></p>

sdf32414撒旦发是否
<p>444<img height="768" width="1024" alt="" src="/uploadfiles/40/Tree.jpg" /></p>';

preg_match_all("/<p>.*src=\"([^^]*?)\".*<\/p>/i",$test,$match);
print_r($match[1]);
?>

这样应该可以,我试的多行的,中间还夹杂一些字符,没什么问题,呵呵

阅读全文

与php正则表达式图片地址相关的资料

热点内容
android伸缩控件 浏览:851
androidm3u8缓存 浏览:234
imphp开源知乎 浏览:706
清除网络通配符dos命令 浏览:837
鸿蒙系统怎么快速换回安卓 浏览:712
pdf绿色虚拟打印机 浏览:213
androidtab框架 浏览:147
java转php的时间戳 浏览:640
编译libstdc依赖 浏览:659
清算法人与原法人的区别 浏览:410
家庭装修下载什么app软件 浏览:576
美食博主用什么app拍视频 浏览:817
ipone手机如何加密微信 浏览:358
自来水加密阀阀帽 浏览:438
华为交换机dhcp配置命令 浏览:319
androidbitmap缩小 浏览:275
单片机串口控制灯 浏览:88
大讯云服务器安装视频 浏览:788
华为算法领先世界 浏览:658
linux路由重启 浏览:570