Почему getcwd() возвращает двойную слэш?

Тема в разделе "PHP", создана пользователем dump1111, 1 мар 2010.

Статус темы:
Закрыта.
Модераторы: latteo
  1. dump1111

    dump1111

    Регистр.:
    7 июл 2009
    Сообщения:
    266
    Симпатии:
    8
    В скрипте директория меняется сначала так:chdir ('C:/dump'); Затем получается значение текущей директории: $way=getcwd(); Но в отладчике видно, что $way='C:\\dump'; А почему? Из-за этого скрипт не работает.
     
  2. venetu

    venetu

    Регистр.:
    28 мар 2007
    Сообщения:
    735
    Симпатии:
    261
    Потому что просто \ - это esc-символ, он сам по себе ничего не значит.

    Применяется обычно в случаях типа такого:

    $str = 'misha\'s valenki';
    $str = "<a href=\"google.com\">google</a>";
    $str = "Цена \$250";

    Экранируются им кавычки и всякие спец. символы, включая сам слеш.
    Соответственно, если тебе надо чтобы в строке было два символа - слеш и кавычка, то написать надо так:

    $str1 = "\\\'";

    Первый символ - слеш мы экранируем таким же слешом, а второй символ - кавычку мы тоже экранируем слешом. Получается 4.

    Соответственно, в твоем случае, т.к. путь сам по себе уже содержит слеш, оно его тоже экранирует слешом, вот и получается $way='C:\\dump';

    Т.е. скрипт глючит не поэтому :)


    Можешь сам подставить $way = "C:/dump" и проверить вручную. Слешы в другую сторону (т.е. обычные) в php под виндой тоже катят.
     
    dump1111 нравится это.
Статус темы:
Закрыта.