3
<?php

ini_set('user_agent', 'Mozilla/5.0 (Windows NT x.y; Win64; x64; rv:10.0.1) Gecko/20100101 Firefox/10.0.1');

echo file_get_contents('http://fr.wikipedia.org/wiki/Brazil', false, $context);

//echo file_get_contents('http://fr.wikipedia.org/wiki/Argentina');

//echo file_get_contents('http://fr.wikipedia.org/wiki/France');

维基百科的答案类似于编码问题(我无法发布它,因为 StackOverflow 发布规则,但如果您运行脚本,您可以看到它)。

(ETC。)

那是为了巴西和阿根廷。但是对于其他页面(如法国),它运行良好。知道发生了什么吗?顺便说一句,这些页面在浏览器上运行良好。

4

2 回答 2

2

最后,我发现了问题。我收到了一个 gzip 压缩的 HTML。当字符串看起来是二进制时,我使用 php 函数解压缩 HTML 解决了这个问题。

我虽然 cURL 会以透明的方式为开发人员处理加密,但我遇到了同样的问题。我认为这可能是维基百科的问题。

于 2012-06-22T14:58:15.647 回答
1

如果您从控制台运行它,请确保它使用 UTF-8(在 Linux 中应该如此,不确定在 Windows 中是否可能)。

如果您是从 Web 获取的,请添加header('Content-Type: text/html; charset=UTF-8');到脚本的开头以告知浏览器正确的编码。

于 2012-06-21T22:52:39.610 回答