Как получить тип контента файла в PHP?

Кажется, нет стандартного способа сделать это, но это работает.

, ПОЧЕМУ однако, вопрос.

function functionize( obj , func )
{ 
   out = func; 
   for( i in obj ){ out[i] = obj[i]; } ; 
   return out; 
}

x = { a: 1, b: 2 }; 
x = functionize( x , function(){ return "hello world"; } );
x()   ==> "hello world" 

нет просто никакого другого способа достигнуть, это, делая

x={}
x() 

возвратит "ошибку типа". потому что "x" является "объектом", и Вы не можете изменить его. его почти столь же разумный как пытающийся сделать

 x = 1
 x[50] = 5
 print x[50] 

это не будет работать. 1 целое число. целые числа не имеют методов массива. Вы не можете сделать его.

17
задан j0k 8 March 2013 в 08:59
поделиться

4 ответа

6
ответ дан 30 November 2019 в 11:32
поделиться

Я действительно рекомендую использовать фреймворк, например CodeIgniter, для отправки писем. Вот скринкаст о «Отправке писем с помощью CodeIgniter» всего за 18 минут.

http://net.tutsplus.com/videos/screencasts/codeigniter-from-scratch-day-3/

-3
ответ дан 30 November 2019 в 11:32
поделиться

Заголовок функции:

 header('Content-Type: '.$the_content_type);

Обратите внимание, что эта функция должна вызываться перед любым выходом. Вы можете найти более подробную информацию в ссылке http://php.net/header

Edit:

Ops, я неправильно понял вопрос: Начиная с php 4.0 существует функция mime_content_type для определения mimetype файла.

В php 5 не рекомендуется, должна быть заменена набором функций информация о файле .

]
-2
ответ дан 30 November 2019 в 11:32
поделиться

Вот пример использования finfo_open , который доступен в PHP5 и PECL:

$mimepath='/usr/share/magic'; // may differ depending on your machine
// try /usr/share/file/magic if it doesn't work
$mime = finfo_open(FILEINFO_MIME,$mimepath);
if ($mime===FALSE) {
 throw new Exception('Unable to open finfo');
}
$filetype = finfo_file($mime,$tmpFileName);
finfo_close($mime);
if ($filetype===FALSE) {
 throw new Exception('Unable to recognise filetype');
}

В качестве альтернативы вы можете использовать устаревшую функцию mime_ content_ type :

$filetype=mime_content_type($tmpFileName);

или используйте встроенные функции ОС:

ob_start();
system('/usr/bin/file -i -b ' . realpath($tmpFileName));
$type = ob_get_clean();
$parts = explode(';', $type);
$filetype=trim($parts[0]);
4
ответ дан 30 November 2019 в 11:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: