str_ireplace non funzionerà con apice singolo
-
20-09-2019 - |
Domanda
Voglio sostituire apice singolo ( ') in una stringa.
A quanto pare questo non funziona ...:
$patterns = array();
$replacements = array();
$patterns[0] = "'";
$patterns[1] = '\'';
$replacements[0] = 'Something';
$replacements[2] = 'Same thing just in a other way';
Soluzione
Sembra che il codice di esempio è stato più anonimi (gli indici 0 e 2 per $ sostituzioni?) E più troncato (dove è la chiamata str_ireplace) però ... mi prendo una congettura che non avete pienamente compreso str_ireplace.
Il primo punto è che str_ireplace non funziona al suo posto. È valore restituito è l'alterata stringa / array di stringhe.
Il secondo punto è che, quando si dispone di una serie di ricerche e sostituzioni, PHP opererà attraverso prendendo un elemento da ogni array e la sua applicazione al soggetto / gamma di soggetti, prima di passare al prossimo punto da ciascun array e quindi applicando che allo stesso soggetto (s). Si può vedere questo nell'esempio seguente in cui entrambi i soggetti hanno avuto "'" sostituito con 'qualcosa' e 'La stessa cosa solo in un altro modo' non fa la sua apparizione nei risultati.
$patterns = array();
$replacements = array();
$patterns[0] = "'";
$patterns[1] = '\'';
$replacements[0] = 'Something';
$replacements[1] = 'Same thing just in a other way';
$subjects[0] = "I've included a single quote.";
$subjects[1] = "This'll also have a quote.";
$newSubjects = str_ireplace($patterns, $replacements, $subjects);
print_r($newSubjects);
Quando si esegue questo dà
Array ([0] => ISomethingve incluso una sola offerta. [1] => ThisSomethingll hanno anche un preventivo.)
Altri suggerimenti
La sostituzione ('
) con ("
) funziona bene per me con str_ireplace
.
$test = str_ireplace("'", "\"", "I said 'Would you answer me?'");
echo $test; // I said "Would you answer me?"
Inoltre funziona bene sostituzione ("
) con ('
)
$test = str_ireplace("\"", "'", "I said \"Would you answer me?\"");
echo $test; // I said 'Would you answer me?'