[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Убрать теги из строки, кроме тех,что внутри <code>
kav1
Есть строка, содержащая html. Мне необходимо убрать в ней все теги, кроме <code></code> и в добавок кроме любых тегов внутри <code></code>

Если я использую

$string = strip_tags($string, "<code>");

то теги (например, там есть div и p) внутри <code> тоже чистятся, а они мне нужны.

Что тут можно предпринять?
Valick
mav1, как вариант порезать данные на "до <code>", "само <code>" и "после <code>. И почистить края не трогая середину.


_____________
Стимулятор ~yoomoney - 41001303250491
kav1
Цитата (Valick @ 12.09.2019 - 13:11)
mav1, как вариант порезать данные на "до <code>", "само <code>" и "после <code>. И почистить края не трогая середину.

Там этих <code> .... </code> довольно много, не самый хороший вариант. По идее что-то с preq_match надо сделать, но как именно не пойму
brevis
Цитата (mav1 @ 12.09.2019 - 16:02)
Что тут можно предпринять?

Можно такой велосипед:
function strip_tags_except_code($html) {
$positions = [];
$html = preg_replace_callback('/<code>(.*)<\/code>/Us', function($match) use (&$positions) {
$id = uniqid();
$positions[$id] = $match[0];
return $id;
}, $html);
return str_replace(array_keys($positions), array_values($positions), strip_tags($html));
}

Может где-то нужно будет обработать напильником.

_____________
Чатик в телеге
kav1
Цитата (brevis @ 12.09.2019 - 14:38)
Цитата (mav1 @ 12.09.2019 - 16:02)
Что тут можно предпринять?

Можно такой велосипед:
function strip_tags_except_code($html) {
$positions = [];
$html = preg_replace_callback('/<code>(.*)<\/code>/Us', function($match) use (&$positions) {
$id = uniqid();
$positions[$id] = $match[0];
return $id;
}, $html);
return str_replace(array_keys($positions), array_values($positions), strip_tags($html));
}

Может где-то нужно будет обработать напильником.

То, что надо, уважаемый
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.