С нами с 01.04.07
Сообщения: 4378
Рейтинг: 2970
|
Добавлено: 22/06/07 в 09:09 |
подскажите, как сделать замену однократной
строка: ugffg word2 jsdifsdvs word1 insdfgsfg word3
массив1: Array ( [0] => word1 [1] => word2 [2] => word3 )
массив2: Array ( [0] => word2 [1] => word3 [2] => word1 )
str_replace($arr1,$arr2,$stroka)
результат str_replace получается не такой, как хотелось.
word1 так и остается, word2 меняется на word1, и только word3, т.к. задумано на word1
спрашивал на phpclub.ru упорно тыкают в ман, а я также упорно не вижу решения...
подсказали strtr но к ней нужна функция array_combine которая толшько в пхп5.
|
|
|
|
С нами с 06.03.03
Сообщения: 1650
Рейтинг: 1096
|
Добавлено: 22/06/07 в 17:43 |
вроде все верно, но если говоришь не работает, значит чето не так, разбираться лень. сделай проще:
$text = '...';
$array1 = array(...);
$array2 = array(...);
for($i=0;$i<count($array1);$i++) $text = str_replace($array1[$i],$array2[$i],$text);
echo $text;
|
|
|
|
С нами с 06.03.03
Сообщения: 1650
Рейтинг: 1096
|
Добавлено: 22/06/07 в 17:54 |
не, я понял.
не работает потому что по первому кругу `word1` меняется на `word2`, таким образом в тексте остается ни одного `word1`, и 2 `word2`. потом когда меняется `word2` на `word3` - заменяются оба слова ну и т.д.
решение - заменять в цикле на уникальные временные строки типа %placeholder1%, %placeholder2%, а потом разом менять уже на нужные строки.
|
|
|
|
С нами с 01.04.07
Сообщения: 4378
Рейтинг: 2970
|
Добавлено: 23/06/07 в 07:50 |
с циклами есть решение и проще.
я хотел встроенными функциями
|
|
|
|
Текстовая реклама в форме ответа Заголовок и до четырех строчек текста Длина текста до 350 символов Купить рекламу в этом месте! |