Успокой мой пьяный разум многоликая река. Пусть отныне вдохновляют лишь камни да вода.
Таки, доброго дня.
Если коротко, то необходимо вытащить из статьи в википедии все ссылки. Чуток покопавшись, нашел API через который можно получить необходимую статью. В получаемой статье ссылки имеют вот такй заковыристый синтаксис
[[Мещанство|мещанина]]
Две скобки, название статьи, слово для читаемого вида, две скобки.
Чтоб вытащить названия статей пробовал использовать вот такое выражение
preg_match_all('/(?<=\[\[)([^\|])+(?=(\|)?.*(\]\]))/', $input, $matches);
Как я это вижу:
начинается с двух скобок
текст, не содержащий вертикальную палку, один или более символов
заканчиваетсяя всё на вертикальную палку одну или ноль, рандомные символы и две закрывающие скобки
Если брать текст, про Ленина, то не правильно уже с второго результата =(
Ссылка на статью, про Ленина через API
ru.wikipedia.org/w/api.php?format=xml&action=qu...
Если коротко, то необходимо вытащить из статьи в википедии все ссылки. Чуток покопавшись, нашел API через который можно получить необходимую статью. В получаемой статье ссылки имеют вот такй заковыристый синтаксис
[[Мещанство|мещанина]]
Две скобки, название статьи, слово для читаемого вида, две скобки.
Чтоб вытащить названия статей пробовал использовать вот такое выражение
preg_match_all('/(?<=\[\[)([^\|])+(?=(\|)?.*(\]\]))/', $input, $matches);
Как я это вижу:
начинается с двух скобок
текст, не содержащий вертикальную палку, один или более символов
заканчиваетсяя всё на вертикальную палку одну или ноль, рандомные символы и две закрывающие скобки
Если брать текст, про Ленина, то не правильно уже с второго результата =(
Ссылка на статью, про Ленина через API
ru.wikipedia.org/w/api.php?format=xml&action=qu...
Регексп для поиска "[[Мещанство|мещанина]]" будет выглядеть вот так (запилил туда кусок текста про Ленина):
/\[{2}([\w\s]+\|[\w\s]+)\]{2}/ui
Затем массив этих строк обходим foreach ($data as $str), делаем explode('|', $str) и далее по нужной логике.
/\[{2}([\w\s\.,;:\-_]+\|[\w\s\.,;:\-_]+)\]{2}/ui
спасиб, доберусь до компьютера-попробую так