|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
еретик
Регистрация: Jan 2001
Адрес: Харьков, Украина
Сообщений: 919
|
Не без изъянов, но для внутреннего использования подойдет вполне.
__________________
These unidentyfied flying objects, that appeared to display unique characteristics, such as the speed, the record maneuverity and so on, must be studied in the interest of mankind |
|
|||||
"Вождь"
|
strrpos($file, ".")) !== false
!strrpos($file, ".")) все же будет правильнее. например, для .htaccess будет возвращено значение ноль. то есть файл, у которого нет имени не будет иметь расширения. имхо, ну и если фолс то возвращать можно просто 0. типа быстрее
__________________
а мы летим орбитами путями не избитыми... |
|
|||||
еретик
Регистрация: Jan 2001
Адрес: Харьков, Украина
Сообщений: 919
|
Для файла ".htaccess" функция должна возвратить его расширение "htaccess".
Это правильно.
__________________
These unidentyfied flying objects, that appeared to display unique characteristics, such as the speed, the record maneuverity and so on, must be studied in the interest of mankind |
|
|||||
"Вождь"
|
Вейв, ты че?
ты ж сам ставишь !== false то есть не эдентично false. а false будет возвращено тока, если точки в полном имени файла нет. если с точки начинается, то будет возвращен 0, величина равная, но нулю не идентичная по причина несоответвия типов. тогда надо ставить !=
__________________
а мы летим орбитами путями не избитыми... |
|
|||||
"Вождь"
|
пока готовил кофе типа идея пришла
поставить != тогда при имени типа name.ext возвращается ext при типа .ext возвращается ext а вот если name, то есть расширение отсутсвует возвращать NULL. и еще щас... допустим файл name.ext $pos = strrpos($file, ".") будет 4 $pos-strlen($file)+1 будет 4-9 = -5 если не ошибаюсь.. не ошибаюсь, возвращено будет e.ext поскольку -1 будет t как последний символ. то есть плюс один нафик. тогда при каком нить d.name. $pos = strrpos($file, ".") возвращено будет 6 $pos-strlen($file) 6-6 получаем 0. и полное различие результатов есть! итак, вывод: ext - расширение вот вам NULL - расширение и точка отсутсвуют или имени файла не существует 0 - или расширение "0" или после точки ниче нет
__________________
а мы летим орбитами путями не избитыми... |
|
|||||
еретик
Регистрация: Jan 2001
Адрес: Харьков, Украина
Сообщений: 919
|
Цитата:
При таком раскладе, если точки в имени файла нет, будет возвращено false, если с точки начинается, будет возвращено все, что после точки. Цитата:
Цитата:
$pos-strlen($file)+1 = 4-8+1 = -3 Возвращено будет 'ext'. Цитата:
Итак, что мы имеем: Я - написал маленькую, изящную, корректно выполняющуюся функцию. Ты - путаешься в элементарных математических рассчетах. Думать надо, думать несколько раз, прежде чем критиковать что-либо.
__________________
These unidentyfied flying objects, that appeared to display unique characteristics, such as the speed, the record maneuverity and so on, must be studied in the interest of mankind |
|
|||||
"Вождь"
|
Я понимаю, что не спал сутки и все же. думать не могу, решил пробовать:
при "name." функция возвращает name. в остальном верно, я гоню.
__________________
а мы летим орбитами путями не избитыми... |
|
|||||
2 Pietrovich: прикольно, но эта функция прошла мимо меня
спасибо за то, что раскрыл глаза. |
|
|||||
Регистрация: Jan 2001
Сообщений: 12
|
Развели дискуссию... Меньше слов, больше дела!
$ext = @eregi_replace("(.*)[\.]([a-z0-9]{1,})$", "\2", "$filename"); Если расширения нет, то вернет нулевую строку. Еще полезно добавить обработку на недопустимые символы в имени файла... Вот и все! Учите PHP и особенно регулярные выражения! |
Часовой пояс GMT +4, время: 21:45. |
|
« Предыдущая тема | Следующая тема » |
|
|