域中的file_get_contents()和unicode字符(如æøå)

时间:2016-11-17 19:28:10

标签: php unicode

每当我尝试使用file_get_contents()抓取网页内容时,该网域中都包含unicode字符,我就明白了:

  

file_get_contents(https://møller.dk/):无法打开流:php_network_getaddresses:getaddrinfo failed:>文件位置<

中未知的服务名称

只有在域中有unicode字符时才会发生这种情况。这是一个例子:

file_get_contents("http://møller.dk/");

2 个答案:

答案 0 :(得分:5)

您需要使用dr.GetDecimal(i);功能:

idn_to_ascii()

参考:

答案 1 :(得分:2)

您可以使用编码/解码IDNA名称的Punycode

$Punycode = new Punycode();
$baseUrl = 'ærlig.no';
$url = 'http://'.$Punycode->encode($baseUrl);

echo file_get_contents($url);