在php文件上传时我们需要获取文件名后缀之后进行简单文件类型判断了,而在php中文件名后缀获取方法很简单并且有很多种,下面我来总结一下。
1.basename()-返回路径的文件名,请看下面php代码:
- <?php
- $path = "/usr/www/html/index.php";
- echo basename($path)."<br>";
-
- echo basename($path,".php");
- ?>
运行结果:index.php , index
2.dirname()-返回当前脚本的文件路径,php代码:
- <?php
-
- $dir = dirname(__FILE__);
- echo $dir;
- ?>
运行结果:F:webzendexercise
3.pathinfo() 返回一个关联数组包含有 path 的信息,包括以下的数组单元:路径名称dirname,文件名称basename 和 扩展名称extension,请看下面简单代码演示:
- <?php
- $path = "/usr/www/html/index.php";
- $pathinfo = pathinfo($path);
- echo "目录名称:$pathinfo[dirname]<br>";
- echo "文件名称:$pathinfo[basename]<br>";
- echo "扩展名:$pathinfo[extension]";
- ?>
运行结果:目录名称:/usr/www/html
文件名称:index.php
扩展名:php
4.realpath -- 返回规范化的绝对路径名,php代码如下:
- <?php
- $path = "./exercise/php.txt";
- $realpath = realpath($path);
- echo $realpath;
- ?>
最后注意一个小技巧:不同路径的文件路径操作符可能,不同,windows下可以用"/"和"",
linux下只能用"/",所以开发的时候,建议都用"/",如我上面的文件路径写法!
- <?php
-
- function extend_1($file_name)
- {
- $retval=“”;
- $pt=strrpos($file_name, “.”);
- if ($pt) $retval=substr($file_name, $pt+1, strlen($file_name) - $pt);
- return ($retval);
- }
-
- function extend_2($file_name)
- {
- $extend = pathinfo($file_name);
- $extend = strtolower($extend["extension"]);
- return $extend;
- }
-
- function extend_3($file_name)
- {
- $extend =explode(“.” , $file_name);
- $va=count($extend)-1;
- return $extend[$va];
- }
-
- function getFileExt($file_name)
- {
- while($dot = strpos($file_name, “.”))
- {
- $file_name = substr($file_name, $dot+1);
- }
- return $file_name;
- }
- ?>
|