我正在尝试提取外部网站的编码并将其保存在JSON文件(UTF-8(上。
它运行良好,直到我尝试"www.secra.de"它将此页面的值保存为 Null。
正如我所看到的,在"内容类型"上获得的不仅仅是值,我认为这可能是重定向,但我不确定。
解决它的最佳方法是什么?
$domain = "http://www.secra.de";
$info = get_headers($domain, 1)["Content-Type"];
$infostr = explode('=', $info);
$encoding = end($infostr);
if (!empty($info)){
$data_array[$key]['encode'] = $encoding;
} else {
$data_array[$key]['encode'] = "It don't have Encode";
}
$json = json_encode($data_array);
file_put_contents('data/data.json', $json);
};
问题是http://www.secra.de
重定向到https://www.secra.de
,并且get_headers
函数会返回原始请求和重定向请求的内容类型:
[Content-Type] => Array
(
[0] => text/html; charset=iso-8859-1
[1] => text/html; charset=utf-8
)
所以问题是,当$info
是数组时,你把它当作一个字符串。修复此问题:
$info = get_headers($domain, 1)["Content-Type"];
if (is_array($info)) {
$info = end($info);
}
$infostr = explode('=', $info);
$encoding = end($infostr);