Отримання розширення файла

Щоб правильно отримати розширення файла в PHP, потрібно вміти обробляти три особливих випадки:

  • Шлях не має зайвих символів, але файл без розширення
  • Шлях має зайві символи, наприклад /home/test.d/test.txt
  • Шлях має зайві символи, а у файла немає розширення, наприклад /home/test.d/test
	// Перший спосіб:
	function get_extension($file){
		substr(strrchr($file, '.'), 1);
	}
	 // Другий спосіб:
	function get_extension($file){
		return substr($file, strrpos($file, '.')+1);
	}
	 // Третій спосіб:
	function get_extension($file){
		return end(explode('.', $file));
	}
	 // Четвертий спосіб:
	function get_extension($file){
		$info = pathinfo($file);
		return $info['extension'];
	}
	 // П'ятий спосіб:
	function get_extension($file){
		return pathinfo($file, PATHINFO_EXTENSION);
	}

Перші чотири методи мають різні проблеми. Вочевидь, що методи 1-й і 2-й не зможуть обробити 3-й випадок, а 3-й не зможе правильно обраблять перші два.

4-й може опрацювати все правильно, а в разі того, якщо розширення відсутнє, видасть попередження. I лише 5-й спосіб самий універсальний і правильний в будь-якому варіанті.

Ну й на цьому все сьогодні.