Как получить URL-адреса только из строки с тегами HTML

0

У меня есть этот код здесь, который обнаруживает URL-адреса внутри строки, содержащей содержимое HTML

$regex = "/(http|https)\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/\S*)?/";
                preg_match_all($regex, $desc, $url);
                print_r($url);

Код отлично работает, однако print_r($url) возвращает URL-адреса, такие как:

http://url.com/</p>

</p> просто закрывает <p>, но я не хочу его в своем URL-адресе.

Как я могу это исключить?

Спасибо, Питер

  • 0
    Сначала проанализируйте ваш HTML, а затем запустите средство поиска ссылок на текст?
  • 0
    Как бы я проанализировал HTML?
Показать ещё 2 комментария
Теги:
preg-match
preg-match-all

1 ответ

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

Я использовал функцию strip_tags чтобы удалить все теги HTML, а затем preg_match_all() чтобы получить каждый URL-адрес:

$regex = "/(http|https)\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/\S*)?/";
preg_match_all($regex, strip_tags(html_entity_decode($desc)), $url);
print_r($url);

Надеюсь, это поможет другим в будущем!

Питер

Ещё вопросы

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