Здравствуйте добрые люди, не судите строго за детский вопрос, я только учусь. В PHP есть функция strip_tags, которая удаляет html теги в строке. Во втором ее параметре можно указать исключения, т.е. те теги которые она должно оставить, например вот так:
echo strip_tags($text, '<i><u><b>');
Вопрос; можно ли наоборот, указать в функции те параметры, которая она должна удалить, а все остальное оставить? Например
функция($text,<a>) //удалить теги <a> а все остальные оставить
Не обязательно именно strip_tags(), можно предложить и аналог. Регулярное выражение составить могу, но может есть специальная функция?
Можно так же обойтись без использования сторонних библиотек. Эта функция будет удалять теги, переданные на её вход вторым параметром. Можно передавать более одного тега, разделяя их запятой (можно с пробелом или без него).
Примеры использования:
// Удалить только теги "a" (текст тега останется)
echo del_tags($text, 'a');
// Удалить теги "a" и "br"
echo del_tags($text, 'a,br');
// Или с пробелами между именами тегов
echo del_tags($text, 'a, br'); // и т.д.
function del_tags($txt, $tag) {
$tags = explode(',', $tag);
do {
$tag = array_shift($tags);
$txt = preg_replace("~<($tag)[^>]*>|(?:</(?1)>)|<$tag\s?/?>~x", '', $txt);
} while (!empty($tags));
return $txt;
}
Демо
Можете воспользоваться библиотекой HTML Purifier.
Работает она не очень быстро, но свое дело делает, пример конфига для вашего случая:
$config = HTMLPurifier_Config::createDefault();
$config->set('HTML.AllowedElements', ['a']); // Разрешаем только тег a
$config->set('HTML.AllowedAttributes', ['a.href']); // Разрешает использовать только атрибут href у тега a
$purifier = new HTMLPurifier($config);
$clear_text = $purifier->purify($text);
Возможностей у него очень много, можете почитать на досуге, возможно есть где то и русское описание.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Я пытаюсь создать C++ проект с использованием библиотеки GLFWВ качестве IDE использую QT Creator, система сборки - CMake, ОС - Windows