• Consiglio Direttivo

    [Stringhe] str_replace();

    PHP 4, 5
    Sintassi: mixed str_replace (mixed $search, mixed $replace, mixed $subject*[, int $count]*)

    str_replace è una funzione di PHP che restituisce una stringa, o una matrice, sostituendo il valore (o i valori come vedremo di seguito) del parametro $replace a tutte le occorrenze $search contenute in $subject.
    [php]<?
    $str = 'Questo è un esempio';
    $str = str_replace('un esempio', 'PHP', $str);
    echo $str; // risultato: Questo è PHP
    ?>[/php]Dalla versione 5.0.0 di PHP è stato introdotto il parametro $count che restituisce il numero di occorrenze $search sostituite con il parametro $replace in $subject.
    [php]<?
    $str = 'Mollo';
    $str = str_replace ('l', 't', $str, $count);
    echo $count; // risultato: 2
    ?>[/php]I parametri $search , *$replace *ed $subject possono essere anche degli array.
    Qualora $subject fosse un array verranno sostituite tutte le occorrenze di ogni elemento di $subject.
    [php]<?
    $str[0] = 'Mollo';
    $str[1] = 'Bollo';
    $str = str_replace ('ll', 'tt', $str);
    echo $str[0]; // risultato: Motto
    echo $str[1]; // risultato: Botto
    ?>[/php]Se $search è un'array, ogni elemento dell'array verrà sostituito con il parametro $replace:
    [php]<?
    $str = 'Questo è un esempio';
    $voc = array ('a', 'e', 'i', 'o', 'u');
    $str = str_replace ($voc, '', $str);
    echo $str; // risultato: Qst è n smp
    ?>[/php]Qualora $search ed $replace siano degli array con eguale numero di elementi, questi verranno sostituiti mantenendo l'ordine degli elementi che li costituiscono. Se gli elementi di $replace sono inferiori a quelli di $search, i rimanenti elementi di $search verranno sostituiti con stringhe vuote.
    [php]<?
    $str = 'Bevo tanta acqua, poco vino e mangio sempre';
    $search = array ('tanta', 'poco', 'mangio');
    $replace = array ('poca', 'molto', 'corro');
    $str = str_replace ($search, $replace, $str);
    echo $str; // risultato: Bevo poca acqua, molto vino e corro sempre 😄

    $str = 'Bevo tanta acqua, poco vino e mangio sempre';
    $search = array ('tanta', 'poco', 'sempre');
    $replace = array ('poca', 'molto');
    $str = str_replace ($search, $replace, $str);
    echo $str; // risultato: Bevo poca acqua, molto vino e mangio
    ?>[/php]Questa funzione è case sensitive pertanto il seguente codice potrebbe produrre risultati inaspettati:
    [php] $str = 'Questo è un esempio';
    $voc = array ('a', 'E', 'i', 'O', 'u');
    $str = str_replace ($voc, '', $str);
    echo $str; // risultato: Qesto è n esempo
    ?>[/php]L’equivalente, non case sensitive, di questa funzione è str_ireplace();