提取外部网站的内容类型并将 JSON 文件上的值保存为"Null"



我正在尝试提取外部网站的编码并将其保存在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);

相关内容

  • 没有找到相关文章