problema str_replace

Salve a tutti.

Ho la necessit di sostituire dei caratteri all'interno di una stringa.

Il mio tentativo stato il seguente:

<?php

$occorrenze = array("","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","&","<",">","","","","","" );

$sostituzioni= array("&Agrave;","&Aacute;","&Acirc;","&Atilde;","&Auml;","&Aring;","&AElig;","&Ccedil;","&Egrave;","&Eacute;","&Ecirc;","&Euml;","&Igrave;","&Iacute;","&Icirc;","&Iuml;","&ETH;","&Ntilde;","&Ograve;","&Oacute;","&Ocirc;","&Otilde;","&Ouml;","&times;","&Oslash;","&Ugrave;","&Uacute;","&Ucirc;","&Uuml;","&Yacute;","&THORN;","&szlig;","&agrave;","&aacute;","&acirc;","&atilde;","&auml;","&aring;","&aelig;","&ccedil;","&egrave;","&eacute;","&ecirc;","&euml;","&igrave;","&iacute;","&icirc;","&iuml;","&eth;","&ntilde;","&ograve;","&oacute;","&ocirc;","&otilde;","&ouml;","&divide;","&oslash;","&ugrave;","&uacute;","&ucirc;","&uuml;","&yacute;","&thorn;","&yuml;","&amp;","&lt;","&gt;","&euro;","&circ;","&tilde;","&hellip;","&trade;");

$r[1] = @str_replace($occorrenze, $sostituzioni, $r[1]); // Notare @ per compatibilit con php5
?>

Confido in un vostro aiuto.

Grazie.

inviato 6 anni fa
Schiappa
modificato 6 anni fa
X 0 X

La funzione corretta, dove sta il problema?

Vedi anche preg_replace se hai necessit di usare espressioni regolari.

risposto 6 anni fa
Mario Santagiuliana
X 0 X

Salve Mario.

Il problema che mi azzera $r[1]....

risposto 6 anni fa
Schiappa
X 0 X

Ciao,

ho provato il tuo codice e funziona, ecco cosa ho scritto:

$r[1] = 'Caratteri da sostituire:  ';

$occorrenze = array("","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","&","<",">","","","","","" );

$sostituzioni= array("&Agrave;","&Aacute;","&Acirc;","&Atilde;","&Auml;","&Aring;","&AElig;","&Ccedil;","&Egrave;","&Eacute;","&Ecirc;","&Euml;","&Igrave;","&Iacute;","&Icirc;","&Iuml;","&ETH;","&Ntilde;","&Ograve;","&Oacute;","&Ocirc;","&Otilde;","&Ouml;","&times;","&Oslash;","&Ugrave;","&Uacute;","&Ucirc;","&Uuml;","&Yacute;","&THORN;","&szlig;","&agrave;","&aacute;","&acirc;","&atilde;","&auml;","&aring;","&aelig;","&ccedil;","&egrave;","&eacute;","&ecirc;","&euml;","&igrave;","&iacute;","&icirc;","&iuml;","&eth;","&ntilde;","&ograve;","&oacute;","&ocirc;","&otilde;","&ouml;","&divide;","&oslash;","&ugrave;","&uacute;","&ucirc;","&uuml;","&yacute;","&thorn;","&yuml;","&amp;","&lt;","&gt;","&euro;","&circ;","&tilde;","&hellip;","&trade;");

$r[1] = str_replace($occorrenze, $sostituzioni, $r[1]);

echo $r[1];

Stampa:

Caratteri da sostituire: &Agrave; &Egrave;

???

risposto 6 anni fa
guidoch
X 0 X

Non so perch la variabile veniva azzerata...

Comunque il mio obbiettivo era quello di far stampare in modo corretto (nella pagina html di output) i dati inseriti nel database.

Facendo delle prove ho visto che non importa sostituire i caratteri in questione se questi vengono caricati dalla pagina php.....non so perch (anche se mi piacerebbe saperlo), ma comunque il risultato mi soddisfa!

Vi ringrazio per l'assistenza!

risposto 6 anni fa
Schiappa
X 0 X

Comunque il mio obbiettivo era quello di far stampare in modo corretto (nella pagina html di output) i dati inseriti nel database.

Facendo delle prove ho visto che non importa sostituire i caratteri in questione se questi vengono caricati dalla pagina php.....non so perch (anche se mi piacerebbe saperlo), ma comunque il risultato mi soddisfa!

Ogni volta che vedi sul browser il tuo testo controlla il codice html.

I caratteri accentati se si vedono correttamente perch hai impostato in modo corretto la codifica dei caratteri (dovrebbe essere utf8) o perch hai usato il codice html che il tuo browser interpreta come caratteri accentati.

Devi vedere il codice html che produci per capire l'output reale del php, non l'interpretazione del browser.

risposto 6 anni fa
Mario Santagiuliana
X 0 X

Questo grazie alla riga

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

all'inizio della pagina?

risposto 6 anni fa
Schiappa
X 0 X

Si e non solo. Anche i dati che invii devono essere in codifica utf8.

ciao

risposto 6 anni fa
Mario Santagiuliana
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda