Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Сделать замену элемента через один.
 
 автор: BaSh   (22.06.2007 в 14:25)   письмо автору
 
 

Привет!
Есть такой скрипт

<?php
$text
="<html>
<div>Текст 1</div>
<div>Текст 2</div>
<div>Текст 3</div>
<div>текст 4 и т.д.</div>
</html>"
;
//дальше делаем замену.
$text=@str_replace('<div>','<div class="new">',$text);
echo 
$text
?>


И все тэги <div> заменятся на <div class="new">. Собственно проблема: мне нужно заменить тэг <div>
так, чтобы код приобрел вид:

<html>
<div class="new">Текст 1</div>
<div class="main">Текст 2</div>
<div class="new">Текст 3</div>
<div class="main">текст 4 и т.д.</div>
</html>


То есть чтобы <div> заменялся поочередно то на <div class="new"> , то на <div class="main"> и строго через одного. Помогите составить регулярное выражение для этого. И вообще возможно ли сделать такую замену?

   
 
 автор: kasmanaft   (22.06.2007 в 14:44)   письмо автору
 
   для: BaSh   (22.06.2007 в 14:25)
 

Ммм... можно вот так попробовать:
<?php
$text 
' * * * ';
function 
func($regs)
{
    if (!empty(
$regs[2]))
        return 
'<div class="new">'.$regs[1].'<div class="main">';
    return 
'<div class="new">'.$regs[1];
}
$text preg_replace_callback('#<div>((?:(?!<div>).)*)(<div>)?#is','func',$text);

   
 
 автор: BaSh   (22.06.2007 в 16:28)   письмо автору
 
   для: kasmanaft   (22.06.2007 в 14:44)
 

СПАСИБО! Это то, что надо!

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования