Как открыть удаленный файл с помощью fopen ()? - PullRequest
0 голосов
/ 01 апреля 2011

Мне нужно открыть следующий URL

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

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

но я получаю предупреждение http запрос не выполнен / 403 запрещен

Ответы [ 3 ]

4 голосов
/ 01 апреля 2011

Агент пользователя PHP по умолчанию заблокирован;см. Политика пользователя-агента Викимедиа для получения подробной информации.Вы можете довольно легко изменить свой пользовательский агент, используя ini_set в верхней части вашего скрипта, например:

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

Обратите внимание, что английская Википедия запрещает скачивать много страниц через API (предлагая базу данных дампы вместо этого), и что автоматические процессы, которые фактически редактируют вики, запрещены, если не одобрен .См. их политика ботов для деталей.

1 голос
/ 01 апреля 2011

Зачем вам нужен файл? Если вам просто нужен вывод, вы можете вместо этого попробовать file_get_contents () , а затем загрузить и манипулировать им как строкой вместо файла.

0 голосов
/ 01 апреля 2011

но я получаю предупреждение http запрос не выполнен / 403 запрещен

Ошибка 403 исходит от их сервера.

Скорее всего, вам или кому-то, кто использует IP-адрес или блокировку, было категорически запрещено использовать API Википедии. Вам нужно будет связаться с ответственным администратором в Википедии, чтобы провести расследование.

...