如何使用fopen()打开远程文件?

时间:2011-04-01 05:51:31

标签: php http-status-code-403 wikipedia-api

我需要打开以下网址

$file = "http://en.wikipedia.org/w/api.php?action=parse&page=Kundapura&prop=text&format=xml"; 

$fp = fopen($file, "r"); 

但是我收到警告http请求失败/ 403禁止

3 个答案:

答案 0 :(得分:4)

默认的PHP用户代理被阻止;有关详细信息,请参阅Wikimedia's User-Agent policy。您可以使用脚本顶部的ini_set轻松更改用户代理,如下所示:

ini_set("user_agent", "Testing for http://stackoverflow.com/questions/5509640");

请注意,英语维基百科禁止通过API下载许多页面(而是提供database dumps),除非approved,否则禁止实际编辑维基的自动过程。有关详细信息,请参阅their bot policy

答案 1 :(得分:1)

你需要什么文件?如果您只需要输出,则可以尝试file_get_contents(),然后将其作为字符串而不是文件加载和操作。

答案 2 :(得分:0)

  

但我警告http请求失败/ 403禁止

403 error来自他们的服务器。

有可能您或您正在使用的IP地址或块上的某人被禁止使用Wikipedia API。您需要联系维基百科的负责管理员进行调查。