Как заменить строку в тексте?

Тема в разделе "PHP", создана пользователем Ragger, 4 май 2010.

Статус темы:
Закрыта.
Модераторы: latteo
  1. Ragger

    Ragger

    Регистр.:
    14 июн 2008
    Сообщения:
    167
    Симпатии:
    183
    PHP:
    $text "REPLACE
    1text
    2text
    REPLACE
    3text
    REPLACE
    4text"
    ;
    Как заменить второй REPLACE между 2text и 3text?
    Чтобы получилось так:
    PHP:
    REPLACE
    1text
    2text
    REPLACE_WAS_HERE
    3text
    REPLACE
    4text
     
  2. KillDead

    KillDead

    Регистр.:
    11 авг 2006
    Сообщения:
    890
    Симпатии:
    558
    Набросал, заменит только второе(или -надцатое) вхождение.
    PHP:
    function str_replace_word($search$replace$subject$_repl) {
       
    $i=1;
        
    $key 1;
        
    $kon 0;
     
        while ( 
    $key ) {
            
            
    $pos stripos $subject$search$kon );
            
            if (
    $pos !== FALSE) {
                
    $len_word strlen $replace );
                if (
    $i==$_repl) {
                    
                    
                    
    $subject substr_replace $subject,  $replace$pos$len_word );
                    
    $key 0;
                    
                } else {
                    
    $kon $pos $len_word;
                    
    $i ++;
                }
                
            } else {
                
    $key 0;
            }
        }
     
        
        return 
    $subject;
        

    }
    $text "REPLACE 
    1text 
    2text 
    REPLACE 
    3text 
    REPLACE 
    4text"

    echo 
    str_replace_word('REPLACE''WHITH'$text2)
     
    Ragger нравится это.
  3. Alix

    Alix

    Регистр.:
    27 янв 2008
    Сообщения:
    234
    Симпатии:
    84
    Или так(именно между 2ым и 3им text'ом)
    PHP:
    echo preg_replace("/(2text)(.*?)(3text)/si",  "\${1}".PHP_EOL."REPLACE_WAS_HERE".PHP_EOL."\$3"$text);
     
Статус темы:
Закрыта.