Почему функция basename не работает с обратным слэшем

  • Автор темы Соколов Станисл
  • Дата начала

Соколов Станисл

Guest
Почему функция basename не работает с обратным слэшем

эта строка обрабатывается правильно C:/FOR_REDACTIRI/sl25u.jpg

а вот эта не обрабатывается
C:\FOR_REDACTIRI\sl25u.jpg
после выполнения функции basename строка остается такойже, проблема в том что форма присылае строку с обратными слэшами
 

Соколов Станисл

Guest
ничего не мешает, но при таком же скрипте другого сайта (расположен на том же сервере) форма возвращает строку с прямыми слэшами
 

Соколов Станисл

Guest
nagash
это ты показал как менять обратный слэш на прямой, а я говорю про то что форма отправляет строку то с прямыми то с обратными слэшами
 

nagash

Guest
и?
в обоих случаях меняй...
и всё будет замечательно...
или ты хочешь начать придумывать себе проблемы...
тогда задавай конкретные вопросы...
мой ответ целиком и полностью решает твою проблему.
 

Соколов Станисл

Guest
tony2001
форма передает следующее:
C:\\FOR_REDACTIRI\\sl25u.jpg
PHP:
$var = $_POST['userfile'];
$var_red = basename($var);
$var_red содержит C:\\FOR_REDACTIRI\\sl25u.jpg

Уже все работает правильно, но мне непонятно почему форма передает строку с двумя слэшами и почему basename отказывается ее обрабатывать, в документации не написано что она не умее работать с обр слэшем...
В принципе это не критично, но хотелось бы понять почему так
 

tony2001

TeaM PHPClub
да, действительно на НЕ-виндовсах такой синтаксис basename не поддерживается.
я выясню почему так и почему это не документировано.
 

tony2001

TeaM PHPClub
я ошибся, это документировано:
На платформах Windows в качестве разделителей имен составляющих пути используются оба слэша (прямой / и обратный \). В других операционных системах разделителем служит прямой слэш (/).
используй str_replace и basename после него.
 

Фанат

oncle terrible
Команда форума
мне непонятно почему форма передает строку с двумя слэшами
ответ можно прочесть в [f]slashes[/f]
НАСТОЯТЕЛЬНО екомендую тебе прочесть ВСЕ разделы FAQ.
Тому есть две причины:
1. Там всего чтения на 10 минут.
2. На этом форуме правилами запрещено задавать вопросы, освещенные в FAQ.

Ту причину, что в FAQ освещены базовые вопросы, скоторыми тебе придется столкнуться в в обязательном порядке, и прочтение сэкономит тебе кучу времени, я непривожу, как несущественную.
 
Сверху