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

Статус
В этой теме нельзя размещать новые ответы.

dump1111

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

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

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

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

$str1 = "\\\'";

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

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

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


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