当前位置 博文首页 > 文章内容

    PHP函数运用之:利用字符串函数来提取文件的扩展名

    作者:shunshunshun18 栏目:未分类 时间:2021-08-19 10:44:56

    本站于2023年9月4日。收到“大连君*****咨询有限公司”通知
    说我们IIS7站长博客,有一篇博文用了他们的图片。
    要求我们给他们一张图片6000元。要不然法院告我们

    为避免不必要的麻烦,IIS7站长博客,全站内容图片下架、并积极应诉
    博文内容全部不再显示,请需要相关资讯的站长朋友到必应搜索。谢谢!

    另祝:版权碰瓷诈骗团伙,早日弃暗投明。

    相关新闻:借版权之名、行诈骗之实,周某因犯诈骗罪被判处有期徒刑十一年六个月

    叹!百花齐放的时代,渐行渐远!



    在之前的文章《》中,我们介绍了两种利用数组来获取文件扩展名的方法。这次我们继续介绍获取文件扩展名的方法,看看利用字符串函数要怎么操作,感兴趣的朋友可以学习了解一下~

    首先我们回忆一下上文,从上文我们了解到一个完整的文件格式可分为三个部分:字符“.”之前的内容字符“.”字符“.”之后的内容

    这次我们还是要利用 字符“.,通过它来获取文件扩展名!下面我们会给大家介绍3种利用字符串函数获取文件扩展名的方法。

    首先我们来看看第一种利用字符串函数获取文件扩展名的方法

    <?php
    function getExtension($filename){
             $ext = strrchr($filename,'.');
             return $ext;
    }
    $filename="dir/upload/image.gif";
    echo getExtension($filename);
    ?>

    分析一下上面的关键代码:

    strrchr($filename,'.')的意思为返回字符串$filename中从字符“.”开始到字符串结尾的所有字符。因此输出结果为:

    1.png

    接下来我们看看第二种利用字符串函数获取文件扩展名的方法

    <?php
    function getExtension($filename){
        $pos = strrpos($filename, '.');
        $ext = substr($filename, $pos);
        return $ext;
    }
    $filename="dir/upload/image.gif";
    echo getExtension($filename);
    ?>

    输出结果为:

    2.png

    OK,分析一下上面的关键代码:

    • 首先我们使用strrpos($filename, '.')获取到字符“.”在字符串$filename中最后一次出现的位置$pos,然后将$pos作为substr()函数的第二个参数。

    • substr($filename, $pos)会根据$pos设置的位置开始截取字符串$filename,返回从$pos开始到字符串结尾的所有字符。因此会输出“.gif”。

    如果想要获取不包括字符“.”的扩展名,即返回“gif”,那么可以设置substr($filename, $pos+1),这样输出结果就为:

    3.png

    最后我们看看第三种利用字符串函数获取文件扩展名的方法

    <?php
    function getExtension($filename){
        $filename = strrev($filename);
        $ext = strstr($str,'.',true);
        return strrev($ext);
    }
    $filename="dir/upload/image.gif";
    echo getExtension($filename);
    ?>

    分析一下上面的关键代码:

    strstr($filename,'.',true)可以获取字符串$filename中从开头到 字符“.” 第一次出现前的所有字符,即获取 字符“.”之前的内容,输出一下看看:

    5.png

    这和我们的预期不符合,此时我想了一下,既然是获取 字符“.”之前的内容,那么就把字符串反转一下,让表示扩展名的那几个字符在字符“.”之前不久行了!

    因此,先使用strrev($filename)来反转字符串$filename,再使用strstr($filename,'.',true)来获取 字符“.”之前的内容,这次输出看看结果:

    6.png

    可以了,获取到颠倒的扩展名了,调用strrev($filename)再反转一次字符串,这样就获取到正常的扩展名了,看看输出结果:

    4.png

    好了就说到这里了,有其他想知道的,可以点击这个哦。→ →

    最后给大家推荐阅读一个经典课程《》,免费的~快来学习啊!