[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Вырезать <object> с дива.
RCuPeR
Добрый день.
Прошу помощи в составлении регулярки.
Нужно проверить, существует ли в диве с классом "class" тег <object>, если такой имеется - вырезать.



Спустя 24 минуты, 29 секунд (24.02.2012 - 12:06) Winston написал(а):
А что мешает сразу пробовать вырезать объект? Если массив пустой, значит нету тега, если есть, значит и объект присутствует
Свернутый текст
$str = '<div class="class">
<object type="application/x-shockwave-flash"
data="images/mouse.swf" width="400" height="300">
<param name="quality" value="high">
<param name="wmode" value="opaque">
</object>
</div>
<div>ololo</div>'
;

echo isset($match[1]) ? 'OK' : 'BAD';
preg_match('#<div class="class">.*(<object[^>]*>.*</object>).*</div>#isU', $str, $match);
echo '<pre>'.htmlspecialchars(print_r($match, 1)).'</pre>';

Спустя 20 минут, 6 секунд (24.02.2012 - 12:26) RCuPeR написал(а):
Хм...Чуть-чуть не так.
Точнее, так, но с точностью наоборот smile.gif

Нужно убить <object> внутри <div class="class">. Т.е, что бы <div class="class"> остался пустым.

Спустя 15 минут, 48 секунд (24.02.2012 - 12:42) Winston написал(а):
Тьфу ты :)
Тогда так
echo preg_replace('#(<div class="class">.*)<object[^>]*>.*</object>(.*</div>)#isU', '$1$2', $str);

Спустя 34 минуты, 49 секунд (24.02.2012 - 13:16) RCuPeR написал(а):
Во !) Оно ! Спасибо большое !)

Блин...Слушай, еще один момент rolleyes.gif

А что если у меня помимо класса, в диве есть еде другие атрибуты, типа title, id и т.д, как их игнорировать ?

Спустя 3 минуты, 2 секунды (24.02.2012 - 13:19) Winston написал(а):
Измени
(<div class="class">.*)
На
(<div.*class="class"[^>]*>.*)

Спустя 3 минуты, 24 секунды (24.02.2012 - 13:23) RCuPeR написал(а):
Бегу за пивом biggrin.gif
А пока держи +1 в карму wink.gif

Спустя 9 минут, 36 секунд (24.02.2012 - 13:32) RCuPeR написал(а):
Ой, на таком примере почему-то не получилось :(


Свернутый текст
$str = '<div title="KoteMaskat" class="js_user_feed_div_text"><object height="385" width="640"><param name="wmode" value="transparent"><param name="movie" value="http://www.youtube.com/v/Wfzp4cdcuYc"><param name="allowFullScreen" value="true"><param name="allowscriptaccess" value="always"><embed wmode="transparent" allowfullscreen="true" allowscriptaccess="always" height="385" src="http://www.youtube.com/v/Wfzp4cdcuYc" type="application/x-shockwave-flash" width="640"></object></div>';

echo preg_replace('#(<div.*class="class"[^>]*>.*)<object[^>]*>.*</object>(.*</div >)#isU', '$1$2', $str);

Спустя 59 секунд (24.02.2012 - 13:33) RCuPeR написал(а):
Блин-блин-блин! Класс неверно указал. Прошу прощения rolleyes.gif
Тему можно считать закрытой.


_____________
Гнусный социопат с комплексом Бога.
Быстрый ответ:

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