【发布时间】:2013-01-03 21:12:14
【问题描述】:
当我尝试使用 PHP 的 file_get_contents() 函数访问非英语 (Unicode) URL 时出现此错误。网址是:http://ml.wikipedia.org/wiki/%E0%B4%B2%E0%B4%AF%E0%B4%A3%E0%B5%BD_%E0%B4%AE%E0%B5%86%E0%B4%B8%E0%B5%8D%E0%B4%B8%E0%B4%BF
我遇到了这个错误:
警告:file_get_contents(http://ml.wikipedia.org/wiki/%E0%B4%B2%E0%B4%AF%E0%B4%A3%E0%B5%BD_%E0%B4%AE% E0%B5%86%E0%B4%B8%E0%B5%8D%E0%B4%B8%E0%B4%BF) [function.file-get-contents]:无法打开流:HTTP 请求失败! HTTP/1.0 403 禁止..
致命错误:在第 8 行对 G:\xampp\htdocs\codes\htmlParse1.php 中的非对象调用成员函数 find()
file_get_contents() 函数有什么限制吗?它只接受英文网址吗?
【问题讨论】:
-
@viakondratiuk 你想说什么?上面的 URL 已经进行了 URL 编码。奇怪... URL 在浏览器中工作,我看不出它不应该的原因。它适用于纯 URL 吗?
-
@Pekka:是的,ascii-URL 可以正常工作……很奇怪
-
那是什么语言?我的浏览器甚至无法正确显示这些字符...
-
@Calle:正如简森所说,没关系 - 斯洛伐克语也不起作用。试试 sk.wikipedia.org/wiki/Žuvačka
-
我可以获得 sv.wikipedia.org 或 en.wikipedia.org 而无需对用户代理进行任何更改(如下面的解决方案所示)。我只是在扔东西:sv.wikipedia.org 有效,en.wikipedia.org 有效,但 ml.wikipedia.org 无效?为什么?好吧,ml.wikipedia.org 重定向到一个不是 URL 编码的 URL(至少在浏览器中没有这样显示),这样的重定向会导致问题吗?
标签: php url unicode file-get-contents