$filename = 'mypic.gif'; // 1. The "explode/end" approach $ext = end(explode('.', $filename)); // 2. The "strrchr" approach $ext = substr(strrchr($filename, '.'), 1); // 3. The "strrpos" approach $ext = substr($filename, strrpos($filename, '.') + 1); // 4. The "preg_replace" approach $ext = preg_replace('/^.*\.([^.]+)$/D', '$1', $filename); // 5. The "never use this" approach // From: http://php.about.com/od/finishedphp1/qt/file_ext_PHP.htm $exts = split("[/\\.]", $filename); $n = count($exts)-1; $ext = $exts[$n]; |
Ці 5-ть способів я чисто випадково побачив тут. І 6-й спосіб від мене:
$pathInfo = pathinfo($filename); $ext = $pathInfo['extension']; |
Ну, хто більше :)?
UPD. Можна сказати 6.2 від KAndy і VadimVoituk:
$ext = pathinfo($filename, PATHINFO_EXTENSION); |
Самий класний спосіб :)!
$pathInfo = pathInfo($path, PATHINFO_EXTENSION);
Супер!
7. напевно ще можна з допомогою ПХП-регулярок ereg, хоча точно не знаю завжди лише Перловськими користуюсь.
ПС: А в своїх проектах завжди використовую перший варіант.
А теперь правильный ответ:
$ext = pathinfo($filename, PATHINFO_EXTENSION);
Класний варіант! Тільки KAndy був першим 😉
$path_info = pathinfo($filename);
$ext = $path_info[‘extension’];
Вже побачив. Дякую 😉
Pingback: Alexander Makhno’s Blog » Get file extension in PHP