You can easily check mime type of an internet resource using this code :
<?php
function getUrlMimeType($url) {
$buffer = file_get_contents($url);
$finfo = new finfo(FILEINFO_MIME_TYPE);
return $finfo->buffer($buffer);
}
?>
I'm using it to detect if an url given by a user is a HTML page (so I do some stuff with the HTML) or a file on Internet (so I show an icon accordingly to the mime type).
PHP.mk документација
finfo_buffer
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
Патека
function.finfo-buffer.php
Локална патека за оваа страница.
Извор
php.net/manual/en
Оригиналниот HTML се реупотребува и локално се стилизира.
Режим
Прокси + превод во позадина
Кодовите, табелите и белешките остануваат читливи во истиот тек.
Референца
function.finfo-buffer.php
finfo_buffer
Референца за `function.finfo-buffer.php` со подобрена типографија и навигација.
finfo_buffer
finfo::buffer
(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL fileinfo >= 0.1.0)
finfo_buffer -- finfo::buffer — (PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL fileinfo >= 0.1.0)
= NULL
Процедурален стил
finfo_buffer(
finfo
string
int
?resource
): string|false
finfo
$finfo,string
$string,int
$flags = FILEINFO_NONE,?resource
$context = null): string|false
Напиши целосна ознака на елемент
public finfo::buffer(string
$string, int $flags = FILEINFO_NONE, ?resource $context = null): string|falseВрати информации за бафер од стринг
Параметри
finfo-
Еден finfo инстанца, вратена од finfo_open().
string- Оваа функција се користи за добивање информации за бинарни податоци во стринг.
flags- Еден или дизјункција од повеќе Fileinfo константи.
context
Вратени вредности
Содржина на датотека што треба да се провери. string
Враќа текстуален опис на false аргумент, или
Дневник на промени
| Верзија | = NULL |
|---|---|
| 8.1.0 |
На finfo параметарот очекува finfo
инстанца сега; претходно, а resource се очекуваше.
|
| 8.0.0 |
context сега е null.
|
Примери
ако е овозможен колекторот за отпадоци, finfo_buffer() example
<?php
$finfo = new finfo(FILEINFO_MIME);
echo $finfo->buffer($_POST["script"]) . "\n";
?>Горниот пример ќе прикаже нешто слично на:
application/x-sh; charset=us-ascii
Види Исто така
- finfo_file() ако се појави грешка.
Белешки од корисници 2 забелешки
- Врати информации за датотека ¶
пред 14 години
contact at ingnu dot fr ¶
пред 10 години
You should never rely on finfo::buffer to get the MimeType of a file, you must always save the file physically or temporariliy and use finfo_open to get MimeType. I tested it with an excell file, with buffer it says octet-stream that is not valid, with finfo_open it says ms-excell as correct.