我正在使用php 7,并尝试在扩展网址后删除所有内容;例子 https://website/sites/tag/filename/IMG25.jpg?iabc=gfds to https://website/sites/tag/filename/IMG25.jpg或者 https://website/sites/tag/filename/IMG25.png&iabc=gfds to https://website/sites/tag/filename/IMG25.png或者 https://website/sites/tag/filename/IMG25.jpeg&abc=gfds to https://website/sites/tag/filename/IMG25.jpeg我正在尝试此功能$clean_url = preg_replace( "/(.+\.(:?jpg|gif|jp2|png|bmp|jpeg|svg)).*$/", '', $filename);但是这个功能不起作用
2 回答
波斯汪
TA贡献1811条经验 获得超4个赞
我已经对您的正则表达式进行了一些调整,以捕获组并仅将第一个组替换为url,如下所示:
$clean_url = preg_replace(
"/(.+(\.(jpg|gif|jp2|png|bmp|jpeg|svg)))(.*)$/",
'${1}',
$url
);
所有情况的示例代码:
<?php
$urls = [
"https://website/sites/tag/filename/IMG25.png&iabc=gfds",
"https://website/sites/tag/filename/IMG25.jpg?iabc=gfds",
"https://website/sites/tag/filename/IMG25.jpeg&abc=gfds"
];
foreach ($urls as $url){
$clean_url = preg_replace(
"/(.+(\.(jpg|gif|jp2|png|bmp|jpeg|svg)))(.*)$/",
'${1}',
$url
);
echo $clean_url ."\n";
}
- 2 回答
- 0 关注
- 155 浏览
添加回答
举报
0/150
提交
取消