为了账号安全,请及时绑定邮箱和手机立即绑定

PHP-如何在扩展名后删除所有内容(jpg,png,gif,jpeg,svg等)

PHP-如何在扩展名后删除所有内容(jpg,png,gif,jpeg,svg等)

PHP
慕妹3242003 2021-05-03 17:48:32
我正在使用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";


}


查看完整回答
反对 回复 2021-05-21
?
翻翻过去那场雪

TA贡献2065条经验 获得超14个赞

您可以这样操作:

首先使用“?”展开您的网址字符串 作为定界符,而不是使用结果数组的第一个元素。

explode('?', $url)[0];


查看完整回答
反对 回复 2021-05-21
  • 2 回答
  • 0 关注
  • 155 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信