За последние 24 часа нас посетили 55403 программиста и 1786 роботов. Сейчас ищут 1184 программиста ...

Не работает preg_replace

Тема в разделе "PHP для новичков", создана пользователем borus, 6 дек 2012.

  1. borus

    borus Активный пользователь

    С нами с:
    16 апр 2012
    Сообщения:
    161
    Симпатии:
    0
    Здравствуйте.
    Пробую применить preg_replace:
    Код (Text):
    1. $my1="аб";
    2. echo "my1 before = $my1"."<br/>";
    3. $my2="аю";
    4. $my3="б";
    5. preg_replace($my3, $my2, $my1);
    6. echo "my1 = $my1"."<br/>";
    Не происходит подмены в $my1. Почему?
     
  2. Saturn

    Saturn Активный пользователь

    С нами с:
    29 сен 2012
    Сообщения:
    3
    Симпатии:
    0
    Re: Не работает preg_match

    Код (Text):
    1. $my1="аб";
    2. echo "my1 before = $my1"."<br/>";
    3. $my2="аю";
    4. $my3="/б/";
    5. preg_replace($my3, $my2, $my1);
    6. echo "my1 = $my1"."<br/>";
     
  3. borus

    borus Активный пользователь

    С нами с:
    16 апр 2012
    Сообщения:
    161
    Симпатии:
    0
    тоже самое, не подменяет
     
  4. YSandro

    YSandro Старожил

    С нами с:
    7 апр 2011
    Сообщения:
    2.523
    Симпатии:
    2
    Во-первых, верно Saturn написал, нужны косые.
    Во-вторых, рег. выражение возвращает результат, а не меняет прямо в строке.
    Код (PHP):
    1. $my3="/б/";//паттерн
    2. $my1=preg_replace($my3, $my2, $my1); 
    Вместо косых можно и другие символы использовать для определения рег. выражения, например
    Код (PHP):
    1. $my3="'б'";
    2. $my3="#б#";
    3. $my3="|б|"; 
     
  5. borus

    borus Активный пользователь

    С нами с:
    16 апр 2012
    Сообщения:
    161
    Симпатии:
    0
    в описании написано "mixed preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] )
    Выполняет поиск совпадений в строке subject с шаблоном pattern и заменяет их на replacement."
    Как же тогда поступать в следующий раз, с другой функцией - проверять возвращает ли значение или в хелпе на это есть намек? думал это процедура

    Добавлено спустя 2 минуты 27 секунд:
    не знаком с регвыражениями. Какие больше используются - PCRE?
     
  6. YSandro

    YSandro Старожил

    С нами с:
    7 апр 2011
    Сообщения:
    2.523
    Симпатии:
    2
    borus, функция preg_replace возвращает mixed. Это может быть строка или массив с измененными строками, смотря что давали в параметре subject.

    Добавлено спустя 1 минуту 18 секунд:
    http://www.php.ru/manual/function.preg-replace.html