|
|
|
| Привет!
Есть такой скрипт
<?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"> и строго через одного. Помогите составить регулярное выражение для этого. И вообще возможно ли сделать такую замену? | |
|
|
|
|
|
|
|
для: 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);
|
| |
|
|
|
|
|
|
|
для: kasmanaft
(22.06.2007 в 14:44)
| | СПАСИБО! Это то, что надо! | |
|
|
|