在php中获取所请求URL的内容类型

时间:2012-08-19 03:16:14

标签: php header content-type

使用php我怎样才能将变量$type定义为http://www.example.comcontent-type

例如:$type定义为"text/html"

到目前为止,这就是我正在使用的内容:

<?php
$url = 'http://www.example.com';
print_r(get_headers($url));
print_r(get_headers($url, 1));
?>

代码可能会根据需要进行更改

3 个答案:

答案 0 :(得分:14)

你试过了吗?

$type = get_headers($url, 1)["Content-Type"];

如@Michael的评论中所述,如果没有最新版本的PHP,这种语法将无效。

您是否也尝试过:

$headers = get_headers($url, 1);
$type = $headers["Content-Type"];

答案 1 :(得分:4)

有时get_header返回错误的值因为它读取了http标头,但没有文件。 应该更好地使用finfo:

$finfo = new finfo(FILEINFO_MIME_TYPE);
$type = $finfo->buffer(file_get_contents($link));

答案 2 :(得分:0)

不清楚您要尝试做什么,但如果您尝试获取浏览器发送到脚本的请求内容类型,则可以执行以下操作:

<?php 
// Collect all headers
$headers = [];
foreach(getallheaders() as $name => $header){
    $headers[strtolower($name)] = $header;
}

// Get the content type header
$contentType = $headers['content-type'];
?>