У меня есть строка, такая как string(8234) "<style>.{ margin-bottom:10px; float:left; display: inline-block; width:56%; text-align:left; padding-right:20px; padding-left:20px; } . > p { display: table-cell; height: 150px; vertical-align: middle; }..................</style>.................
Я хочу удалить тег <style>
и все его содержимое. Я попыталсяИмя тега PHP- Preg_replace и его содержимое
$description = $product_info['description']; // the string with style tag
$text = preg_replace('/<\s*style.+?<\s*\/\s*style.*?>/si', ' ', $description);
echo $text;
но он показывает ту же строку без удаления <style>
тега. Я также попытался заменить только <style>
тег, делая
$text = str_replace("<style>", "", $description);
, но это также не работает. Я снова и снова вижу одну и ту же строку. Я также пробовал с DOMParser
$doc = new DOMDocument();
$doc->loadHTML($description);
$xpath = new DOMXPath($doc);
foreach ($xpath->query('//style') as $node) {
$node->parentNode->removeChild($node);
}
$text = $doc->saveHTML();
, но во всех случаях, выход же с <style>
и его содержание
сделать var_dump ($ description) перед preg_replace, потому что ваш код кажется прекрасным; – splash58
оба 'var_dump()' такие же, – baig772
, если вы берете строку со страницы, отображаемой php, вы можете не видеть, что ваша строка '< сценарий >' потому что, вероятно, он сохраняется в БД в такой форме – splash58