我认为您的托管服务器的 IP 不在任何 GeoIP 数据库中。
我只是将这段代码拼凑在一起:
function get_meta_tags_from_path($path)
{
$tags = array();
$source = file_get_contents($path);
$count = preg_match_all(
"|<meta[^>]+name=\"([^\"]*)\"[^>]" . "+content=\"([^\"]*)|i",
$source, $matches, PREG_PATTERN_ORDER);
for($i = 0; $i < $count; $i++)
$tags[$matches[1][$i]] = $matches[2][$i];
return $tags;
}
$tags = get_meta_tags_from_path('https://twitter.com/'));
$description = $tags['description'];
它工作正常,如此处所示。但是,您还可以看到它显示了荷兰元描述,因为服务器位于荷兰,在已知的荷兰 IP 上。如果 Twitter 无法通过标签或 GeoIP 确定访问者的可能区域,那么 Twitter 很可能Accept-language
不会尝试提供本地化内容。除非您使用 cURL 来发起一个请求,其中Accept
包含正确的标头来模拟实际的浏览器,否则您在主机上的运气相当差。