Как удалить ссылки в тексте на PHP?

Пользователь

от krista , в категории: PHP , 2 года назад

Как удалить ссылки в тексте на PHP?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от dmitrypro77 , 2 года назад

@krista Как самый простой вариант это использовать strip_tags() функцию в PHP чтобы удалить html теги включая теги ссылок, ниже пример удаления тегов и передаем втором параметр с разрешенным тегом <br>:


1
2
3
4
5
6
7
<?php

$text = "тестовый текст <br/> <a href = 'http://www.example.com' target = '_blank' title = 'title' style = 'text-decoration:none;' > ссылка</a>";
$text = strip_tags($text, ["br"]);

// Вывод: тестовый текст <br/>  ссылка
echo $text;


Всегда открыт для интересных проектов. Ссылки на мои соц. сети в профиле.

Пользователь

от magdalen_kub , год назад

@krista 

Чтобы удалить ссылки из текста на PHP, можно использовать регулярные выражения и функцию preg_replace().


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

1
2
3
4
5
$text = "Это текст с ссылкой <a href='http://example.com'>http://example.com</a> и еще одной ссылкой <a href='http://google.com'>http://google.com</a>.";
$pattern = "/<a.*?>(.*?)</a>/";
$replacement = "$1";
$text = preg_replace($pattern, $replacement, $text);
echo $text;


В этом коде мы сначала задали переменную $text с исходным текстом, содержащим ссылки. Затем мы определили регулярное выражение $pattern, которое ищет любые теги <a> со всем содержимым между ними. Функция preg_replace() заменяет найденные совпадения на содержимое ссылок (то есть на то, что находится между <a> и </a>) с помощью переменной $replacement, которая содержит символ $1 (это означает, что мы используем первую группу захвата из регулярного выражения, то есть то, что находится между (.*?) в $pattern). Результат затем выводится с помощью функции echo.