Как получить расширение файла в PHP? [дубликат]
Возможный Дубликат:
Как извлечь расширение файла в PHP?
Я хочу получить расширение файла загружаемого изображения, но я просто получаю массив обратно.
$userfile_name = $_FILES['image']['name'];
$userfile_extn = explode(".", strtolower($_FILES['image']['name']));
Есть ли способ просто получить само расширение?
5 answers
Нет необходимости использовать строковые функции. Вы можете использовать что-то, что на самом деле предназначено для того, что вы хотите: pathinfo()
:
$path = $_FILES['image']['name'];
$ext = pathinfo($path, PATHINFO_EXTENSION);
Это также будет работать:
$array = explode('.', $_FILES['image']['name']);
$extension = end($array);
Лучшим методом является использование strrpos + substr (для этого быстрее, чем взорваться):
$userfile_name = $_FILES['image']['name'];
$userfile_extn = substr($userfile_name, strrpos($userfile_name, '.')+1);
Но для проверки типа файла лучше использовать mime_content_type : http://www.php.net/manual/en/function.mime-content-type.php
Вы могли бы попробовать использовать это для типа mime
$image = getimagesize($_FILES['image']['tmp_name']);
$image['mime']
вернет тип mime.
Для этой функции не требуется библиотека GD. Вы можете найти документацию здесь.
Это возвращает тип mime изображения.
Некоторые люди используют $_FILES["file"]["type"]
, но это ненадежно, как указано браузером, а не PHP.
Вы можете использовать pathinfo()
, как предложил ThiefMaster, для получения расширения изображения.
Сначала убедитесь, что изображение успешно загружено во время разработки до выполнения каких-либо операций с изображением.
Как насчет
$ext = array_pop($userfile_extn);