![]() |
PHP код:
|
strrpos($file, ".")) !== false
!strrpos($file, ".")) все же будет правильнее. например, для .htaccess будет возвращено значение ноль. то есть файл, у которого нет имени не будет иметь расширения. имхо, ну и если фолс то возвращать можно просто 0. типа быстрее ;) |
Для файла ".htaccess" функция должна возвратить его расширение "htaccess".
Это правильно. |
Вейв, ты че?
ты ж сам ставишь !== 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" или после точки ниче нет |
Цитата:
При таком раскладе, если точки в имени файла нет, будет возвращено false, если с точки начинается, будет возвращено все, что после точки. Цитата:
Цитата:
$pos-strlen($file)+1 = 4-8+1 = -3 Возвращено будет 'ext'. Цитата:
Итак, что мы имеем: Я - написал маленькую, изящную, корректно выполняющуюся функцию. Ты - путаешься в элементарных математических рассчетах. Думать надо, думать несколько раз, прежде чем критиковать что-либо. |
Я понимаю, что не спал сутки и все же. думать не могу, решил пробовать:
при "name." функция возвращает name. в остальном верно, я гоню. |
есть вопрос.
возможно он туп до безобразия, но я тек и не встретил упоминания про pathinfo(); [Returns information about a file path (PHP 4 >= 4.0.3) ] или тут специально тренируются обходиться без core feautures? :D |
2 Pietrovich: прикольно, но эта функция прошла мимо меня :)
спасибо за то, что раскрыл глаза. |
Развели дискуссию... Меньше слов, больше дела!
$ext = @eregi_replace("(.*)[\.]([a-z0-9]{1,})$", "\2", "$filename"); Если расширения нет, то вернет нулевую строку. Еще полезно добавить обработку на недопустимые символы в имени файла... Вот и все! Учите PHP и особенно регулярные выражения! |
| Часовой пояс GMT +4, время: 07:56. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.