За последние 24 часа нас посетили 49845 программистов и 1741 робот. Сейчас ищут 633 программиста ...

str_replace и substr_replace

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

  1. kilogram

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

    С нами с:
    19 мар 2012
    Сообщения:
    116
    Симпатии:
    0
    str_replace и substr_replace В чем разница?

    Оба зменяют одну строку другой. Чем лучше та или иная функция?
    А в чем же различие?

    Код (Text):
    1.  
    2. <?php
    3. $text = "<br>Ну, ты чувак гонишь!";
    4. echo substr_replace($text,'молодец',17,6);
    5. echo str_replace("гонишь",'молодец',$text);
    6. ?>
     
  2. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    Ну так в том и различие - одна меняет по цифрам, другая - по тексту )))
     
  3. kilogram

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

    С нами с:
    19 мар 2012
    Сообщения:
    116
    Симпатии:
    0
    СКажите, а зачем здесь нужны в описании массива внутри каждый элемент отделять {}

    Код (Text):
    1. <html><body>
    2. <?php
    3. $from = array("{TITLE}","{BODY}");
    4. $to = array("Философия","Учат в школе, учат в школе!");
    5. echo str_replace($from,$to, "<title>{TITLE}</title><body>{BODY}</body>");
    6. ?>
    7.  
    8. </body></html>
    Как работает эта строка?
    Код (Text):
    1. echo str_replace($from,$to, "<title>{TITLE}</title><body>{BODY}</body>");
    2 'элемента массива $from заменяются на 2 элемента массива $to? 3-ий параметр не ясно как работает в данном коде
     
  4. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    третий параметр это та строка где фром заменяется на то
     
  5. kilogram

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

    С нами с:
    19 мар 2012
    Сообщения:
    116
    Симпатии:
    0
    В документации написано так:
    Код (Text):
    1. search
    2. Искомое значение, также известное как needle (иголка). Для множества искомых значений можно использовать массив.
    3.  
    4. replace
    5. Значение замены, будет использовано для замены искомых значений search. Для множества значений можно использовать массив.
    6.  
    7. subject
    8. Строка или массив, в котором производится поиск и замена, также известный как haystack (стог сена).
    9.  
    10. Если subject является массивом, то поиск с заменой будет осуществляться над каждым элементом subject, а результатом функции также будет являться массив.
    Получается такой расклад?
    1 параметр - $from - поиск- искомый элемент
    2 параметр - $to - поиск - заменяемый элемент
    3 параметр - а в третем парметре сама замена происходит?
    В 3 параметре TITLE - это название первого массива $from который заменится на его второй элемент массива from на BODY?
    "<title>{TITLE}</title><body>{BODY}</body>");

    Добавлено спустя 31 минуту 18 секунд:
    Попробовал свой пример написать, получается если я хочу найти массив и заменить на массив,как такое же происходило в примере выше, про который я прочитал в книге и спросил выше, мне нужно каждый элемент выписывать в фигурных скобках с индексами?

    Код (Text):
    1. $t = array("Петя","Вася");
    2. $m = array("Дуся","Муся");
    3. echo str_replace($t,$m,"{$t[0]}{$t[1]}");
     
  6. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    ты не понял.

    у тебя текст. допустим война и мир.
    и ты хочешь всех пьеров безуховых заменить на бредов питов.
    а всех наташ ростовых на анжелин джоли.
    мысль улавливаешь? =)