Изчистване на текст от определени html тагове

cold_zero

Registered
Здравейте,

Искам да изчистя определени html таговете от един текст. Уловката обаче е, че трябва да се изчистят само таговете съдържащи се в <div id="content"></div>, т.е. всички други тагове да си останат, но тези в този div да се махнат. Как ще стане номера?
 
Преполагам с file_get_content се опитваш да взимаш информация от някъде и искаш да изчистиш дивовете: това става по този вариянт:

PHP:
$string='<div id="content">tekst</div>';
$cstring=explode('<div id="content">', $string);
$cstring=explode('</div>', $cstring[1]);
echo $cstring[0];
 
Не взимам информация, правя един скрипт.

Искам текстовете и останалите тагове извън съответния div също да останат...

Също така това, което си дал не чисти HTML-a

Явно не съм се изразил добре...

Да речем, че имам следното съдържание:

Код:
text text text s html tagove
<div id="content">
text s html tagove
</div>
oshte text s html tagove

Искам съдържанието извън div-a да остане такова каквото е, а това в div-a да се изчисти от всякакви html тагове.
 
Aко искаш да запазва HTML таговете:
Код:
$text = 'text text text s html tagove
<div id="content">
text s html tagove
</div>
oshte text s html tagove';
$content = preg_replace('/(<div\sid=\"content\">)[^<]+(<\/div>)/i', '$1$2', $text);
var_dump($content);

Кода по-горе ще изкара:
Код:
string(86) "text text text s html tagove
<div id="content"></div>
oshte text s html tagove"


Ако НЕ искаш да запазиш таговете, смени:

Код:
$content = preg_replace('/(<div\sid=\"content\">)[^<]+(<\/div>)/i', ' ', $text);
 
Стана така:

$pattern = '/<div\sid=\"content\">(.*?)<\/div>/is';
preg_match_all($pattern, $text, $matches);
$new_text = str_replace($matches[1][0], strip_tags($matches[1][0]), $text);

Все пак мерси за помощта :)
 

Back
Горе