Разбор строки в массив и отображение ее на странице

1

У меня есть эта строка, которая используется с простым парсером html и что-то вроде этого

<b>Atmosp'Hair, Caroline Michellod</b><i> in <a href="1" target="_top">Leytron</a></i>, Einzelunt., <a href="1" target="result">+++</a>, <a href="google.com" target="_blank">CHE-137.645.261</a><a href="pdf" target="_blank">Download pdf</a>
<b>Bar La Gouttière, Y. Maret</b><i> in <a href="http://www.example.com">Dolor</a><a href="2" target="_top">Martigny</a></i>, Einzelunt., <a href="2" target="result">+++</a>, <a href="yahoo.com" target="_blank">CHE-112.712.556</a><a href="http:/wwww.coocc.com">Doloo</a>
<b>Catherine Michellod</b><i> in <a href="3" target="_top">Bagnes</a></i>, Einzelunt., <a href="3" target="result">+</a>, <a href="bing.com" target="_blank">CHE-111.755.770</a><a href="pdf" target="_blank">Download pdf</a>

Мне нужно, чтобы получить новый массив от этого и отобразить его на странице так, как это

<a href="google.com" target="_blank">CHE-137.645.261</a>
<a href="yahoo.com" target="_blank">CHE-112.712.556</a>
<a href="bing.com" target="_blank">CHE-111.755.770</a>

Я попытался найти атрибут _blank, но есть некоторая другая ссылка с этим атрибутом, также пытались найти nt файл, но иногда есть еще один тег. Много плохого HTML, единственное, что уникально в том, что href внутренний html начинается с CHE

  • 0
    Найдите все ссылки и выберите те, текст которых начинается с CHE
  • 0
    Да, поместите в массив и отобразите его следующим образом: <a href="LINK"> CHE NAME </a>
Теги:
parsing

1 ответ

1
Лучший ответ

Просто используйте preg_match_all() чтобы получить все совпадения, например

<?php

    preg_match_all("/<[^>]*>CHE[^<]*<[^>]*>/", $str, $m);
    print_r($m[0]);

?>

вывод:

Array
(
    [0] => <a href="google.com" target="_blank">CHE-137.645.261</a>
    [1] => <a href="yahoo.com" target="_blank">CHE-112.712.556</a>
    [2] => <a href="bing.com" target="_blank">CHE-111.755.770</a>
)
  • 0
    Можете ли вы помочь мне получить такой массив $ results = Array = (Array ([link] => google.com [name] => CHE-137.645.261) Array ([link] => yahoo.com [name] = > CHE-112.712.556) Array ([ссылка] => bing.com [имя] => CHE-111.755.770))
  • 0
    @MiomirDancevic Посмотрите здесь: 3v4l.org/IufD1
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню