Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Разное

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Запрещённые небуквенные знаки в именах файлов
 
 автор: Владимир55   (29.12.2008 в 12:31)   письмо автору
 
 

Насколько я знаю, помимо букв латинского алфавита в именах файлов можно использовать тире и знак нижнего подчеркивания, а вот косую и вопросительный знак использовать недопустимо.

А есть ли полный перечень того, какие знаки в именах файлов использовать можно и какие использовать не следует?

========================
Имеется в виду такой перечень разрешенных знаков, который был бы справедлив для любой ОС.

  Ответить  
 
 автор: vitali   (29.12.2008 в 13:30)   письмо автору
 
   для: Владимир55   (29.12.2008 в 12:31)
 

У Дж.Фридла "Регулярные выражения" есть такой фрагмент регулярки:

'%
\b
# Начало URL (префикс:// имя_хоста или просто имя хоста)
(
   # допустимые префиксы - ftp://, http:// и https://
   (ftp|https?)://[-\w]+(\.\w[-\w]*)+
  |
   # ... или попытаться найти имя хоста по уточненному подвыражению
   (?i: [a-z0-9] (?: [-a-z0-9]*[a-z0-9])? \. )+   # Домены нижних уровней (поиск без учета регистра)
   # Окончания .com и т.д. должны прописываться строчными буквами (поиск с учетом регистра)
    (?-i: com\b
        | edu\b
        | biz\b
        | gov\b
        | in(?:t|fo)\b # .int или .info
        | mil\b
        | org\b
        | [a-z][a-z]\b #двух буквенные коды стран
    )
)
# Разрешить необязательный номер порта
( : \d+ )?
# Остаток URL не является обязательным и начинается с / ...
(
    /
    # Эвристические правила, которые хорошо работают в нашем случае
    [^;"\'<>()\[\]{}\s\x7F-\xFF]*
    (?:
       [..?]+ [^;"\'<>()\[\]{}\s\x7F-\xFF]+
    )*
)?%x'

Это наверное ответ на Ваш вопрос.

  Ответить  
 
 автор: ddhvvn   (29.12.2008 в 13:41)   письмо автору
 
   для: vitali   (29.12.2008 в 13:30)
 

эммм... и где тут имена файлов или требования к ним?

  Ответить  
 
 автор: vitali   (29.12.2008 в 14:06)   письмо автору
 
   для: ddhvvn   (29.12.2008 в 13:41)
 

Думается, что здесь:

# Остаток URL не является обязательным и начинается с / ...
(
/
# Эвристические правила, которые хорошо работают в нашем случае
[^;"\'<>()\[\]{}\s\x7F-\xFF]*
(?:
[..?]+ [^;"\'<>()\[\]{}\s\x7F-\xFF]+
)*
)

  Ответить  
 
 автор: Loki   (29.12.2008 в 14:06)   письмо автору
 
   для: Владимир55   (29.12.2008 в 12:31)
 

* Для MS-DOS в имени файла допустимы только заглавные буквы, цифры. Не допустим пробел, знак вопроса, звёздочка, символы больше/меньше, символ вертикальной черты.[2]. При вызове системных функций именами файлов в нижнем или смешанном регистре, они приводятся к верхнему регистру.
* Для Microsoft Windows в имени файла разрешены заглавные и строчные буквы, цифры, некоторые знаки препинания, пробел. Запрещены символы «>», «<», «|», «?», «*», «/», «\», «:», «"».
* Для GNU/Linux (с учётом возможности маскировки) разрешены все символы, кроме «/» и нулевого байта.

http://ru.wikipedia.org/wiki/%D0%A4%D0%B0%D0%B9%D0%BB

  Ответить  
 
 автор: Владимир55   (29.12.2008 в 14:30)   письмо автору
 
   для: Loki   (29.12.2008 в 14:06)
 

Получается, что для ХР допустимы ! @ # $ % ^ & ) ( } { ] [ ; ' " + - = точка запятая

Будет ли это справедливо для файлов, размещенных на сервере с ОС FreeBSD 6.x и обслуживаемых рнр?

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования