Как изменить текст(строку) с помощью пхп (регулярка?)


datum
282

Есть текст в хтмл:

<p>Абзац 1</p>

<p>Абзац 2</p>

<p>Абзац 3</p>

<p>Абзац 4</p>

Как после например 2 или 3 абзаца вставить блок <div>Banner 1</div>, чтобы текст получился таким

<p>Абзац 1</p>

<p>Абзац 2</p>

<p>Абзац 3</p>

<div>Banner 1</div>

<p>Абзац 4</p>


proweb.com.ua

for($i=0; $i<4; $i++)

{

if($i==0){print «<p>Абзац 1</p>»;}

if($i==1){print «<p>Абзац 2</p>»;}

if($i==2){print «<p>Абзац 3</p><div>Banner 1</div>»;}

if($i==3){print «<p>Абзац 4</p>»;}

}


datum

ну не каждый же абзац переменная)) Текст так приблизительно хранится:

$text=»<p>Абзац 1</p><p>Абзац 2</p><p>Абзац 3</p><p>Абзац 4</p>»;


Samail


$text="<p>Абзац 1</p><p>Абзац 2</p><p>Абзац 3</p><p>Абзац 4</p>";
$text = preg_replace('/(<p.+?<\/p>.*?<p.+?<\/p>.*?<p.+?<\/p>)/', '$1<div>Banner 1</div>', $text);
echo $text;


onep


$text = explode("</p>", $text);
for ($i = 0; $i <count($text); $i++ ) {
if ($i == 3) {
// Блок после 4 абзаца
}
echo $text[$i] . "</p>";
}


Х.З.

я обычно в массив загоняю, далее в нужном ключе подставляю нужное значение (можно сделать как в цикле, так и без), рабочий код подобного поможет найти гугл


proweb.com.ua

datum:
ну не каждый же абзац переменная))

а где Вы там увидели переменную?

datum:
Текст так приблизительно хранится:
$text=»<p>Абзац 1</p><p>Абзац 2</p><p>Абзац 3</p><p>Абзац 4</p>»;

Так оно и будет, в зависимости от того какие внутри правил Вы выставите html теги.

P.S. Я набросал такой код, чтоб понятнее было разобраться, хотя Samail, написал более правильнее…

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *