如何使用 fopen() 打开远程文件?
我需要打开以下网址
$file = "http://en.wikipedia.org/w/api.php?action=parse&page=Kundapura&prop=text&format=xml";
$fp = fopen($file, "r");
,但我收到警告 http 请求失败/ 403 禁止
i need to open the following url
$file = "http://en.wikipedia.org/w/api.php?action=parse&page=Kundapura&prop=text&format=xml";
$fp = fopen($file, "r");
but i am geeting warning http request failed/ 403 forbidden
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
默认 PHP 用户代理被阻止;有关详细信息,请参阅维基媒体的用户代理政策。您可以使用脚本顶部的
ini_set
轻松更改用户代理,如下所示:请注意,英语维基百科禁止通过 API 下载许多页面(提供 数据库转储),并且禁止实际编辑 wiki 的自动化进程,除非 已批准。有关详细信息,请参阅他们的机器人政策。
The default PHP user agent is blocked; see Wikimedia's User-Agent policy for details. You can easily enough change your user agent using
ini_set
at the top of your script, like this:Do note that the English Wikipedia forbids downloading many pages via the API (offering database dumps instead), and that automated processes that actually edit the wiki are forbidden unless approved. See their bot policy for details.
你需要这个文件做什么?如果您只需要输出,可以尝试 file_get_contents()相反,然后将其作为字符串而不是文件加载和操作。
What do you need the file for? If you just need the output, you can try file_get_contents() instead, and then load and manipulate it as a string instead of a file.
403错误来自他们的服务器。
您或您正在使用的 IP 地址或块上的某人可能已被严格禁止使用维基百科 API。您需要联系维基百科的负责管理员进行调查。
The 403 error is coming from their server.
Chances are that you or someone on the IP address or block you are using has been aggressively banned from using the Wikipedia API. You will need to contact a responsible admin at Wikipedia to investigate.