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';
È stato utile?

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?' 
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top