Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Вебмастеру (http://forum.oszone.net/forumdisplay.php?f=22)
-   -   Вопрос (http://forum.oszone.net/showthread.php?t=46913)

E-mail 20-03-2005 01:43 308375

Вопрос
 
1) есть главный текст $text.
2) мы знаем пять выдержек из текста.
3) мы их записали в массив $mass[0,1,2,3,4]

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

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

если так,

PHP код:

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

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

hlp..

ivank 20-03-2005 13:36 308439

E-mail
Не самый красивый способ, но работать, я думаю, будет:
PHP код:

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 308462

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

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

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


Время: 15:31.

Время: 15:31.
© OSzone.net 2001-