<rmcreative>

RSS

DIRECTORY_SEPARATOR в PHP

26 января 2010

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

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

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

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

Комментарии RSS

  1. №2200
    dV
    dV 26.01.2010, 15:37:12

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

  2. №2201
    Sam
    Sam 26.01.2010, 15:51:45

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

  3. №2202
    Psih
    Psih 26.01.2010, 22:55:05

    Sam

    У вас как в анекдоте вышло:

    • При двух положительных ответах быть не может отрицательного.

    Голос из аудитории: - Да, конечно...

    Моё любимое:

    define('_DS', DIRECTORY_SEPARATOR);

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

  4. №2206
    Nayjest
    Nayjest 28.01.2010, 1:15:05

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

  5. №2210
    Big_Shark
    Big_Shark 29.01.2010, 9:08:21

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

  6. №2212
    CharnaD
    CharnaD 30.01.2010, 21:13:20

    А еще PHP_EOL

  7. №2836
    jegit
    jegit 08.08.2010, 21:37:30

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

    <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. №7295
    Siverius
    Siverius 22.12.2012, 10:45:29

    Если клацнуть тэг PHP, то в списке уточнений DIRECTORY_SEPARATOR наезжает на PDF)) Так этому PDFу и надо!!))

  1. Почта опубликована не будет.

  2. Можно использовать синтаксис Markdown или HTML.

  3. Введите ответ в поле. Щёлкните, чтобы получить другую задачу.