W3docs

str_replace()

Articolo sulla funzione PHP str_replace(), usata per sostituire tutte le occorrenze di una stringa all'interno di un'altra stringa.

La funzione PHP str_replace() sostituisce tutte le occorrenze di una stringa di ricerca con una stringa di sostituzione. È utile per trovare e sostituire specifici pattern all'interno di testi più lunghi. Di seguito vengono illustrati la sintassi, le caratteristiche principali e alcuni esempi d'uso.

La funzione str_replace() viene utilizzata per sostituire tutte le occorrenze di una stringa all'interno di un'altra stringa. La sintassi della funzione str_replace() è la seguente:

Sintassi PHP di str_replace()

str_replace($search, $replace, $subject, $count = null)

La funzione accetta tre parametri obbligatori e uno opzionale: $search, $replace, $subject e $count.

  • $search: La stringa, o array di stringhe, da cercare.
  • $replace: La stringa, o array di stringhe, con cui sostituire.
  • $subject: La stringa, o array di stringhe, in cui effettuare la ricerca.
  • $count (opzionale): Una variabile passata per riferimento che viene popolata con il numero di sostituzioni effettuate.

La funzione restituisce il $subject modificato. La stringa originale non viene mai modificata direttamente, quindi è necessario acquisire il valore restituito. str_replace() è case-sensitive"World" e "world" sono trattate come stringhe diverse. Se si desidera ignorare le maiuscole/minuscole, utilizzare str_ireplace().

Un esempio di base

Ecco il modo più semplice per utilizzare la funzione str_replace() — sostituire una parola con un'altra:

Esempio di PHP str_replace()

php— editable, runs on the server

In questo esempio, la variabile stringa $string contiene la frase "The quick brown fox jumps over the lazy dog." Sostituiamo la parola "brown" con "red" passando "brown" come $search e "red" come $replace. Il risultato è:

The quick red fox jumps over the lazy dog.

Ogni occorrenza viene sostituita — non solo la prima. Se la stringa di ricerca comparisse tre volte, tutte e tre verrebbero sostituite con una singola chiamata.

Sostituzione di più stringhe contemporaneamente

Quando $search e $replace sono array, ogni elemento di $search viene sostituito dall'elemento alla stessa posizione in $replace. Il quarto argomento opzionale $count viene passato per riferimento e riceve il numero totale di sostituzioni:

Esempio con array e $count

<?php
$search = ["brown", "fox"];
$replace = ["red", "bear"];
$subject = "The quick brown fox jumps over the lazy dog.";
$count = 0;
$result = str_replace($search, $replace, $subject, $count);
echo $result; // Output: The quick red bear jumps over the lazy dog.
echo "Replacements made: $count"; // Output: Replacements made: 2
?>

Se $replace è una singola stringa ma $search è un array, quella stringa viene utilizzata per tutte le corrispondenze:

<?php
$result = str_replace(["a", "e", "i"], "*", "education");
echo $result; // Output: *duc*t*on
?>

Un'insidia: le sostituzioni si concatenano

Le sostituzioni degli array vengono applicate nell'ordine specificato e ciascuna opera sul risultato della precedente. Questo significa che un valore appena inserito può essere nuovamente trovato da un termine di ricerca successivo:

<?php
$count = 0;
$result = str_replace(["A", "B"], ["B", "C"], "A", $count);
echo $result;        // Output: C
echo "\n";
echo "Replacements: $count"; // Output: Replacements: 2
?>

Qui "A" diventa "B" nel primo passaggio, poi quel "B" diventa "C" nel secondo passaggio — quindi il risultato finale è "C", con due sostituzioni conteggiate. Ordina le coppie ricerca/sostituzione con attenzione per evitare questo comportamento, oppure usa strtr() quando hai bisogno che ogni coppia venga applicata esattamente una volta.

Quando usare str_replace()

  • Usa str_replace() per ricerche e sostituzioni letterali veloci quando conosci il testo esatto.
  • Usa str_ireplace() quando la corrispondenza deve ignorare le maiuscole/minuscole.
  • Usa substr_replace() per sostituire una porzione di stringa in base alla posizione anziché al contenuto.
  • Usa preg_replace() quando hai bisogno di pattern matching con espressioni regolari.

La funzione str_replace() offre un modo semplice ed efficiente per cercare e sostituire testo in PHP. Poiché opera su stringhe semplici senza il sovraccarico delle regex, è lo strumento giusto ogni volta che si vuole trovare del testo esatto e letterale.

Esercitazione

Pratica
Cosa fa la funzione str_replace in PHP?
Cosa fa la funzione str_replace in PHP?
Was this page helpful?