天空之城

您当前位置>>首页>>PHP学习>>PHP基础>>PHP获取文件扩展名的几种方法

PHP获取文件扩展名的几种方法

来源:天空之城 - My Site   时间:2014-04-09 00:08:00   编辑:administrator   阅读数:203

[导读]获取对应路径文件的扩展名,提供思路,使用哪几个函数,具体代码可根据不同情况编写,对于文件名中含有其它.,如果比较麻烦,则可以与strrev结合使用,如果不用basename只是操作全路径的话,需要注意目录名中的符号,这里的几种方法对于其它.都已考虑在内,对于最后结果中的.的有无这里不做设置,如果相同功能的函数则也可以替换使用比如end与array_pop,strchr与strstr(这个最好与strrev结合使用),总体思路的话网上基本都一样的,只是有些需要注意的

get_extentsion.rar

<?php
/**
 * 
 * 获取对应路径文件的扩展名,提供思路,使用哪几个函数,具体代码可根据不同情况编写
 * 对于文件名中含有其它".",如果比较麻烦,则可以与strrev结合使用
 * 如果不用basename只是操作全路径的话,需要注意目录名中的符号,这里的几种方法对于其它"."都已考虑在内
 * 对于最后结果中的"."的有无这里不做设置
 * 如果相同功能的函数则也可以替换使用比如end与array_pop,strchr与strstr(这个最好与strrev结合使用)
 * 总体思路的话网上基本都一样的,只是有些需要注意的
 * 以上注释只是解释说明,区别于正规的文档注释
 */
//$file = __FILE__;
$file = 'php';
$num = mt_rand(1,4);
for($i=0;$i<$num;++$i){
    $file = 'aaa.'.$file;    //无论文件名中有多少个"."都可以正确查找到.php,其他扩展参数另外可自己研究
}
echo '文件名:'.$file;
echo '<br />';

/**
 * 单独使用内置函数
 */
function get_ext1($file){
    return strrchr($file,'.');//如果使用strchr最好使用basename($file),要不然目录中出现.则结果出错
}

/**
 * substr与strpos结合使用(每个方法都可以与strrev结合使用防止文件名包含"."干扰出错)
 */
function get_ext2($file){
    //return substr(basename($file),strpos(basename($file),'.'));
    //return strrev(substr(strrev(basename($file)),0,strpos(strrev(basename($file)),'.')));
    $rev = strrev(basename($file));
    $res = substr($rev,0,strpos($rev,'.'));
    return strrev($res);
}

/**
 * 操作数组
 */
function get_ext3($file){
    $arr = explode('.',$file);
    return array_pop($arr);
}

/**
 * 使用正则匹配
 */
function get_ext4($file){
    preg_match_all('/\.[^.]*/',basename($file),$res);
    return array_pop($res[0]);
}

/**
 * 使用pathinfo获取文件信息
 */
function get_ext5($file){
    $pathinfo = pathinfo($file);
    return $pathinfo['extension'];
}

echo get_ext1($file);
echo '<br />';
echo get_ext2($file);
echo '<br />';
echo get_ext3($file);
echo '<br />';
echo get_ext4($file);
echo '<br />';
echo get_ext5($file);

PHP获取文件扩展名的几种方法
原文地址:

上一篇:PHP设计模式之:策略模式
下一篇:htaccess文件用法收集整理

    相关文章

    更多»
      just do it
      天空之城天空之城