Войти

Показать полную графическую версию : Вопрос


E-mail
20-03-2005, 01:43
1) есть главный текст $text.
2) мы знаем пять выдержек из текста.
3) мы их записали в массив $mass[0,1,2,3,4]

4) мы создали еще один масив, в котором эти выдержки просто поменялись местами, т.е. массив стал в таком порядке например: $out[3,1,0,2,4]

вопрос: как в тексте $text сделать новое расположение выдержек??

если так,


$text=str_replace($mass[0],$out[0],$text);


то не получается. одни дубли выходят.
надо както через дополнительную переменную, но как?...(((

hlp..

ivank
20-03-2005, 13:36
E-mail
Не самый красивый способ, но работать, я думаю, будет:

foreach ($mass as $k => $v)
$text = str_replace($v, "\x01$k\x02", $text);
foreach ($out as $k => $v)
$text = str_trplace("\x01$k\x02", $v, $text);

В тексте не должно буть символов с кодами 1 и 2 (в нормальных текстах они не встречаются). При этом заменяемые "выдержки" могут повторяться. Каждое повторение будет заенено.

Если нужно замену сделать только раз, то можно тоже извернуться.

E-mail
20-03-2005, 15:12
ivank
спасибо,
а что ето за символы такие?
я сделал тоже нечто подобное токо я к старой выдержке сначало присваивал кусок "|||".$i."старая выдержка"
номер в масиве(он у старых и новых одинаковый)
и потом менял запись не содержащуюю "|||"

твой вариант выглядет более красиво вроде, сп

единственное в чем мой способ лутше это то что в нем токо один цикл




© OSzone.net 2001-2012