DIRECTORY_SEPARATOR в PHP

Вторник, 26 января 2010

В PHP есть предопределённая константа DIRECTORY_SEPARATOR, содержащая разделитель пути. Для Windows это «\», для Linux и остальных — «/».

Так как Windows понимает оба разделителя, достаточно использовать в коде разделитель Linux вместо константы.

Тем не менее, DIRECTORY_SEPARATOR полезен. Все функции, отдающие путь (вроде realpath), отдают его с специфичными для ОС разделителями. Чтобы разбить такой путь на составляющие как раз удобно использовать константу:


$segments = explode(DIRECTORY_SEPARATOR, realpath(__FILE__));

Тэги: ,

Комментарии

#1 dV 26.01.10, 15:37

Вам не хватает pathinfo() ?

#2 Sam 26.01.10, 15:51

Хватает. Цель заметки — показать, что не вполне безопасно DIRECTORY_SEPARATOR не использовать, за исключением редких случаев.

#3 Psih 26.01.10, 22:55

Sam

У вас как в анекдоте вышло:
- При двух положительных ответах быть не может отрицательного.
Голос из аудитории: - Да, конечно...

Моё любимое:
define('_DS', DIRECTORY_SEPARATOR);

И в путях использую его :)

#4 Nayjest 28.01.10, 01:15

Да, полезненько, а я раньше использовал везде юниксовый сепаратор

#5 Big_Shark 29.01.10, 09:08

CodeIgniter сам определяет данную константу и использует ее в своих функциях

#6 CharnaD 30.01.10, 21:13

А еще PHP_EOL

#7 jegit 08.08.10, 21:37

при передачи пути к файлу из формы


<input type="hidden" name="path_to_my_file" value="dir_1dir_2my_file.png" />



в локальном тестировании не забудьте выключить php_flag magic_quotes_gpc 0.

Моё мнение - после папки 'www' наступает граница LINUX, UNIX систем.

Так как Windows понимает оба разделителя, достаточно использовать в коде разделитель Linux вместо константы.

Сама Windows понимает это.

#8 jegit 08.08.10, 21:40

как видите в моём комментарии выше - обратные слеши в ауте, а вот /> - должен жить

Оставить комментарий




Подписаться на RSS

Интересное

Разделы

  1. (5)
  2. (11)
  3. (6)
  4. (9)
  5. (6)
  6. (6)
  7. (16)
  8. (60)
  9. (274)
  10. (52)
  11. (16)
  12. (12)
  13. (37)
  14. (6)
  15. (10)
  16. (14)
  17. (18)
  18. (16)
  19. (7)
  20. (8)
  21. (7)
  22. (7)
  23. (31)
  24. (76)
  25. (27)
  26. (68)
  27. (5)
  28. (203)
  29. (59)
  30. (6)
  31. (19)
  32. (73)
  33. (27)
  34. (70)
  35. (33)
  36. (10)
  37. (5)
  38. (6)
  39. (5)
  40. (341)
  41. (14)
  42. (11)
  43. (6)
  44. (13)
  45. (8)
  46. (18)
  47. (6)
  48. (15)
  49. (115)
  50. (18)
  51. (6)
  52. (9)
  53. (71)
  54. (16)
  55. (6)
  56. (25)
  57. (13)
  58. (5)
  59. (39)
  60. (7)
  61. (31)
  62. (7)
  63. (12)
  64. (11)
  65. (124)
  66. (34)
  67. (5)
  68. (18)
  69. (28)
  70. (9)
  71. (6)
  72. (8)
  73. (41)
  74. (10)
  75. (6)
  76. (12)
  77. (5)
  78. (9)
  79. (6)

Друзья