php 获取文件名后缀实例小结

在php文件上传时我们需要获取文件名后缀之后进行简单文件类型判断了,而在php中文件名后缀获取方法很简单并且有很多种,下面我来总结一下。

1.basename()-返回路径的文件名,请看下面php代码:

  1. <?php
  2. $path = "/usr/www/html/index.php";
  3. echo basename($path)."<br>";
  4. //如果选择suffix则忽略扩展名
  5. echo basename($path,".php");
  6. ?>

运行结果:index.php , index

2.dirname()-返回当前脚本的文件路径,php代码:

  1. <?php
  2. //——FILE__返回文件完整路径
  3. $dir = dirname(__FILE__);
  4. echo $dir;
  5. ?>

运行结果:F:webzendexercise

3.pathinfo() 返回一个关联数组包含有 path 的信息,包括以下的数组单元:路径名称dirname,文件名称basename 和 扩展名称extension,请看下面简单代码演示:

  1. <?php
  2. $path = "/usr/www/html/index.php";
  3. $pathinfo = pathinfo($path);
  4. echo "目录名称:$pathinfo[dirname]<br>";
  5. echo "文件名称:$pathinfo[basename]<br>";
  6. echo "扩展名:$pathinfo[extension]";
  7. ?>

运行结果:目录名称:/usr/www/html

文件名称:index.php

扩展名:php

4.realpath -- 返回规范化的绝对路径名,php代码如下:

  1. <?php
  2. $path = "./exercise/php.txt";
  3. $realpath = realpath($path);
  4. echo $realpath;
  5. ?>

最后注意一个小技巧:不同路径的文件路径操作符可能,不同,windows下可以用"/"和"",

linux下只能用"/",所以开发的时候,建议都用"/",如我上面的文件路径写法!

  1. <?php
  2. //方法一:
  3. function extend_1($file_name)
  4. {
  5. $retval=“”;
  6. $pt=strrpos($file_name, “.”);
  7. if ($pt) $retval=substr($file_name, $pt+1, strlen($file_name) - $pt);
  8. return ($retval);
  9. }
  10. //方法二
  11. function extend_2($file_name)
  12. {
  13. $extend = pathinfo($file_name);
  14. $extend = strtolower($extend["extension"]);
  15. return $extend;
  16. }
  17. //方法三
  18. function extend_3($file_name)
  19. {
  20. $extend =explode(“.” , $file_name);
  21. $va=count($extend)-1;
  22. return $extend[$va];
  23. }
  24. //方法四
  25. function getFileExt($file_name)
  26. {
  27. while($dot = strpos($file_name, “.”))
  28. {
  29. $file_name = substr($file_name, $dot+1);
  30. }
  31. return $file_name;
  32. }
  33. ?>