PDA

Просмотр полной версии : не работает eregi_replace...


Alien_z
25.01.2007, 21:24
Вот так работает:
<?php
$strFrom = "привет";
$strTo = "здарова";
$str = "пРиВеТ привет";
$str = eregi_replace($strFrom, $strTo, $str);
echo $str;
?>
Выводит: здарова здарова

А вот так нет:
<?php
$strFrom = array("привет", "хеллоу");
$strTo = "здарова";
$str = "пРиВеТ привет";
$str = eregi_replace($strFrom, $strTo, $str);
echo $str;
?>
Выводит: пРиВеТ привет
Помогите плз...

_Great_
25.01.2007, 21:43
а она с массивами работает? я просто не помню

toooto
26.01.2007, 03:08
Вот универсальный вариант, $strFrom может быть и строкой и массивом:

<?
$strFrom = array("привет", "хеллоу");
$strTo = "здарова";
$str = "пРиВеТ привет приВет апвп хЛлоу";
if(is_array($strFrom)){ while(list($e,$strsFrom)=each($strFrom)) $str = eregi_replace($strsFrom, $strTo, $str); }
else $str = eregi_replace($strFrom, $strTo, $str);
echo $str;
?>

bopoh13
26.01.2007, 03:18
[удалено]

Справка:
string eregi_replace(string pattern, string replacement, string string);
* замена регулярного выражения без учета регистра *

Эта функция сканирует string на парные значения к pattern, затем заменяет найденный текст на replacement. string = строка ;)

toooto
26.01.2007, 03:54
bopoh13, ему нужно в строке "пРиВеТ привет" заменить слова "привет", "хеллоу" на "здарова". А у тебя вместо "привет", "хеллоу" только "привет". И зачем тебе массив в строку переводить: $arr = array('пРиВеТ', 'привет'); $str = implode(' ', $arr); ? :)

bopoh13
26.01.2007, 06:07
А у тебя вместо "привет", "хеллоу" только "привет"Прошу прощенья, был не прав!
Мда... :rolleyes: по сути первый пример Alien_z получился...
ЗЫ: пойду еще мануал почитаю...