PathHelper.php 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: Administrator
  5. * Date: 2022/8/10
  6. * Time: 19:31
  7. */
  8. namespace file;
  9. class PathHelper
  10. {
  11. /**
  12. * 提取路径中的文件名(包含后缀)
  13. */
  14. public static function getFilename($path)
  15. {
  16. return pathinfo($path)['basename'];
  17. }
  18. /**
  19. * 提取文件后缀
  20. * @param $path [文件路径、url]
  21. * @return mixed
  22. */
  23. public static function getExt($path)
  24. {
  25. return pathinfo($path)['extension']; // 如果有参数会得到这样html?xxxx
  26. }
  27. /**
  28. * 提取路径中的目录路径
  29. */
  30. public static function getDir($path)
  31. {
  32. // 测试结果,短的路径,获取的结果不能用于拼接路径使用
  33. // /dcyy/ = \
  34. // /dcyy = \
  35. // ./dcyy = .
  36. // bbbb = .
  37. // /aaaa/bbbb = /aaaa
  38. // /aaaa/bbbb/cc = /aaaa/bbbb
  39. // ./aaaa/bbbb/cc = ./aaaa/bbbb
  40. // ../aaaa/bbbb/cc = ../aaaa/bbbb
  41. //C:/Windows/System32/etc = C:/Windows/System32
  42. //http://my.com/post/20.html = http://my.com/post
  43. return dirname($path);//pathinfo($path)['dirname']
  44. }
  45. /**
  46. * 提取父目录路径
  47. */
  48. public static function getParentDir($path, $separator = DS)
  49. {
  50. $path = deleteEndDS($path, $separator);
  51. $res = explode($separator, $path);
  52. if (is_array($res)) {
  53. $end = end($res);
  54. //去除最后一个节点,使用preg_replace替换最后一个匹配到的
  55. $endres = preg_replace("~$end(?!.*$end)~", '', $path);
  56. return $separator == $endres ? $endres : deleteEndDS($endres, $separator);
  57. }
  58. return $res;
  59. }
  60. }