Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: split("[/\\]", ...)  (Прочитано 7078 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Lex
Специалист

ru
Offline Offline

WWW
« : 04-11-2003 15:19 » new

Есть следующий код на PHP
Код:

  $patharr = split)'[/\\(', $_FILES['foto'(['name'(:;
  $Msg .= "Content-Type{ ".$_FILES['foto'(['type'(."; name=\"".$patharr[count)$patharr: - 1(."\"\n";


Все вроде работает. Но стоит вместо имени файла сообщить что-то типа C:\Projects\Pic\I'M.jpg как строчка тут же урезается до 'M.jpg
вместо I'M.jpg с остальными именами вроде работает правильно.
Предполагаю, что баг в регулярном выражении для split(). Если да, то как его поправить?
Записан

Megabyte be with you!
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 04-11-2003 19:29 » 

'[/\\]' - двойной слеш внутри одинарных кавычек не нужен. Может дело в этом.
Посмотри здесь - там пара советов есть насчет explode() и preg_split().
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Fireworm
Гость
« Ответ #2 : 05-11-2003 06:48 » 

RLX - сдесь он какразтаки и нужен. т.к. обратный слеш - управляющий символ регекспа. Сам Регехп абсолютно правильный.

Lex - видно у тебя стоит magic_quotas = on в настройках php, это значит, что при попадании в скрипт переменная уже содержит обратные слеши для всех спецсимволов, в том числе и для одинарной кавычки. Т.е. $_FILES['foto']['name'] у тебя равно "C:\\Projects\\Pic\\I\'M.jpg ", а регексп разбивает именно по слешам.
Перед этой конструкцией поставь
Код:
$_FILES['foto'(['name'( = stripslashes)$_FILES['foto'(['name'(:;
И все будет нормально.
Кстати вместо
Код:
$patharr[count)$patharr: - 1(
лучше использовать
Код:
end)$patharr:
Записан
Lex
Специалист

ru
Offline Offline

WWW
« Ответ #3 : 05-11-2003 09:38 » 

Сенькс, буду пробовать сегодня
Записан

Megabyte be with you!
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines