2010-05-21 2 views
5

Вот что я пытаюсь сделать с помощью Википедии (MediaWiki) API - http://en.wikipedia.org/w/api.phpИзвлечение абзацы из Википедии API с помощью PHP CURL

  1. сделать GET на http://en.wikipedia.org/w/api.php?format=xml&action=opensearch&search=[keyword], чтобы получить список предлагаемых страниц по ключевому слову

  2. Петля через каждый предложил страницу с помощью GET по http://en.wikipedia.org/w/api.php?format=json&action=query&export&titles=[page названию]

  3. извлекать любые пункты найти на странице в массив

  4. ли что-то с массивом

Я застрял на # 3. Я вижу кучу данных JSON, которая включает «\ n \ n» между абзацами, но по какой-то причине функция PHP explode() не работает.

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

Любые идеи? Благодаря!

ответ

1

\n\n буквально эти символы, а не переводы строк. Убедитесь, что вы используете одинарные кавычки строки в взрываются:

$parts = explode('\n\n', $text); 

Если вы решили использовать двойные кавычки, вы будете иметь, чтобы избежать \ персонажей, как так:

$parts = explode("\\n\\n", $text); 

На стороне записки: Почему вы извлекаете данные в двух разных форматах? Почему бы не пойти только на JSON или только на XML?

+0

Awesome - спасибо! Я использовал двойные кавычки вместо одиночных кавычек для функции explode(). Я попытался использовать XML для запроса №2, но весь контент страницы находится внутри одного элемента XML, поэтому он не помогает извлечь абзацы. По крайней мере, с JSON между абзацами есть «\ n \ n». – Kane

+0

Итак, с XML были два перевода строк, а не буквальный \ n \ n? В этом случае вы должны иметь возможность переключиться на XML и запустить explode («\ n \ n», $ text) с двойными кавычками ;-) –

+0

Я не могу сказать, есть ли два XML-файла в XML, я просто вижу пустая строка между абзацами. К сожалению, «\ n \ n», похоже, не работает. В любом случае спасибо! Я должен быть в порядке с XML/JSON mix. – Kane

 Смежные вопросы

  • Нет связанных вопросов^_^