номерация

Dimid
На сайте с 03.12.2006
Offline
74
697

добрый день :)

нужно сделать так:

[text 1]текст номер раз[/text 1]

[text 2]текст номер два[/text 2]

[text 3]текст номер три[/text 3]

...

сейчас так:

[text ]текст номер раз[/text ]

[text ]текст номер два[/text ]

[text ]текст номер три[/text ]

...

как такое можно сделать?

[Удален]
#1

циклом...ю

Dimid
На сайте с 03.12.2006
Offline
74
#2

only_sport, можно подробнее?

[Удален]
#3

Переводим из стоки в массив по разделителю - переводу строки

Далее идем по массиву со счетчтком и заменяем [text ] на [text счетчик ]

Lord Maverik
На сайте с 15.04.2003
Offline
471
#4

капец, only_sport, вы телепат? Я реально вообще не пойму в чем суть задачи у ТС и где он енто применяет :)

RedMall.Ru (https://redmall.ru) - Товары из Китая (Таобао, Tmall) с проверкой качества, скидка для форумчан 7% Партнерская программа 2 уровня: 5% + 5%. Подробнее. (https://redmall.ru/about/partner/)
rasiell
На сайте с 16.02.2008
Offline
217
#5

Если я правильно понял ТС, то это можно сделать регулярным выражением по циклу

Zerber (http://spartanets.ru/zerber) — программа для публикации статей в различные CMS и блогсервисы
malls
На сайте с 08.08.2005
Offline
255
#6


$mass = array(
"[text ]текст номер раз[/text ]",
"[text ]текст номер два[/text ]",
"[text ]текст номер три[/text ]"
);

for($i=0;$i<count($mass);$i++) {
$k = $i + 1; // смещение индекса
$mass[$i] = preg_replace("~\[text \]~","[text ".$k."]",$mass[$i]);
}

print_r($mass);

Примерно так, но только это будет "нУмерацией" называться - клянусь!

Lord Maverik
На сайте с 15.04.2003
Offline
471
#7


$k = $i + 1; // смещение индекса
$mass[$i] = preg_replace("~\[text \]~","[text ".$k."]",$mass[$i]);

можно заменить на


$mass[$i] = preg_replace("~\[text \]~","[text ".($i+1)."]",$mass[$i]);

А если все это предварительно просто в одной строке?

можно например так


$str = str_replace('[/text ]','[/text ]|||',$str);
$mass = explode('|||',$str);

тем самым получим исходный массив.

Кстати наверняка даже с учетом того, что это все в одной строке, а не массиве, можно все это сделать один регулярным выражением. Правда я с ними не дружу, если кто покажет будет неплохо :)

Givandos
На сайте с 25.06.2007
Offline
33
#8

Lord Maverik

Ну если все будет в одной строке, то вариант с регулярками подойдет только в данном случае (который, как уже заметили, является непонятно чем и для чего). А если задача будет почти такая, да только слова в квадратных кавычках (ну или может они будут стоять в скобках) все будут разными, то тут уже труднее будет, потому думаю что Ваш вариант, как и предыдущие варианты лучше всего подойдут.

+ не стоит забывать, что если ТС задает вопросы такого уровня, то вполне вероятно что его знания в ПХП ограничены (собственно как и мои :) ), а регулярки - это тяжело для новичка!

malls
На сайте с 08.08.2005
Offline
255
#9
Lord Maverik:
Кстати наверняка даже с учетом того, что это все в одной строке, а не массиве, можно все это сделать один регулярным выражением. Правда я с ними не дружу, если кто покажет будет неплохо :)

Можно... preg_replace_callback называется...

Dimid
На сайте с 03.12.2006
Offline
74
#10

решил вопрос при помощи notepad plus :)

всё достаточно просто оказалось

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий