+174
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
// get extension and name
$ar = explode('.', $result['name']);
if (count($ar) == 2)
{
$fName = $ar[0];
$fExt = $ar[1];
}
elseif (count($ar) < 2)
{
$fName = $result['name'];
$fExt = '';
}
else
{
$fName = $ar[0];
for ($i = 1; $i < count($ar); $i++)
{
$fName .= '.' . $ar[$i];
}
$fExt = $ar[count($ar) - 1];
}
Вот таким вот образом в проекте вычисляется расширение файла
PS. Для тех кто в танке:
method1(using internal function):
$extension = pathinfo($filename, PATHINFO_EXTENSION);
method2(coder know about 'explode' function)
$ar = explode(".", $filename); $extension = count($ar)>1 ? end($ar) : "";
method3(coder know about 'strchr', 'strrchr' and 'substr' functions)
$extension = strrchr(".", $filename ) == FALSE ? "" : substr(strrchr(".", $filename));
Запостил: mykola,
19 Августа 2010
ferry-very-good 19.08.2010 18:35 # 0
Vasiliy 20.08.2010 08:42 # 0
Lure Of Chaos 19.08.2010 21:51 # −16
%govnouser% 20.08.2010 11:16 # +9
cheef 20.08.2010 15:07 # +3
P.S. а вообще затея вычислением расширения по-моему лишняя, где оно пригодиться то может..
Lure Of Chaos 20.08.2010 21:04 # −5
ну например проверка при загрузке на определенные расширения файлов
Анонимус 20.08.2010 22:21 # 0
для юниксоидов это просто кусочек имени, так что серьезно что-то фильтровать по расширению -- глупо имхо
Lure Of Chaos 20.08.2010 22:25 # −1
Потому что, если мы зауплоудим, скажем, гифку, но без расширения - какой контент-тип тогда слать броузеру, отдавая ее?
если я что-то не понимаю, пожалуйста, просветите
Анонимус 20.08.2010 23:23 # +1
мы же на своей стороне может проверить ее заголовок
например гифы начинаются как GIF89, зипы как PK итд
ну для надежности можно и расширение конечно
Lure Of Chaos 20.08.2010 23:31 # 0
ну этим может заняться и fileinfo
для надежности. Потому что на вход и броузер может отослать какой угодно миме. Тот же image/pjpeg
noRerih 21.08.2010 13:51 # +3
Сортировать одномерный массив пузырьком будете, а считывать содержимое файла в строку - в цикле?
telnet 20.08.2010 09:03 # +4
И да, забыли метод 4 - для поклонников регэкспов:
Lure Of Chaos 20.08.2010 10:23 # −5
а скорость сейчас замерим...
Lure Of Chaos 20.08.2010 11:01 # −5
... а замеры показывают, что pathinfo зря я не использовал - она даже быстрее (30 микросекунд) выражений со строковыми функциями. а метод (2) с разделением строки на массив - как и ожидалось, наиболее медленный - 90 микросекунд. метод 3 - 80 микросекунд
Arrest 20.08.2010 17:03 # +6
Lure Of Chaos 20.08.2010 21:05 # −6
вообще я думал, что pathinfo лезет в сам файл, потому будет медленен
%govnouser% 20.08.2010 21:39 # +7
что ты школота позорная, не умеющая читать даже мануалов. Как же ты всех тут заебал своими тупыми высерами, когда же ты заткнешь хлебало, из которого воняет нубством
господа, пора сливать долбоеба макаку, походу это второй вебкилл детектед
mykola 20.08.2010 11:57 # +1
Я заморочился и замерял скорость, мои результаты несколько иные:
Тестовая строка 'nbpro.ject/pri.vate/private.xml'.
Суть не в производительности, но читаемости. pathinfo все же имхо наиболее легко воспринимается.
telnet 20.08.2010 12:46 # 0
mykola 20.08.2010 12:51 # −1
mykola 20.08.2010 12:58 # 0
istem 22.08.2010 01:31 # 0