$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, кто может объяснить? А также что это значит, никогда не применяя подход?Получение дополнительных данных из файла
Если ваш [предыдущий вопрос в аналогичных строках] (http://stackoverflow.com/questions/9251707/removing-extensions-from-filename) был закрыт как точный дубликат, возможно, вам следует использовать ответ из указанного дубликата вопрос или ответ на первый комментарий из вашего предыдущего вопроса? – rdlowrey
Я не согласен, что это дубликат. ОП запрашивает объяснение конкретной реализации здесь, как прокомментировано в коде выше ... –
Я тоже согласен - я не думаю, что это дубликат. Это правильный вопрос, просто интересно вслух, почему OP все еще возится с ним. Я хотел бы отменить (слишком поспешное) закрытое голосование, но мой первоначальный комментарий все еще стоит. – rdlowrey