problema con caratteri speciali e str_replace

  • Creatore Discussione Creatore Discussione asevenx
  • Data di inizio Data di inizio

asevenx

Utente Attivo
7 Nov 2009
312
0
16
Salve, nel mio sito ho un form per commenti. Dato che i caratteri come le lettere accentate non vengono letti correttamente ho utilizzato questo sistema (suggerito tempo fa in questo forum):
PHP:
$search  = array('°','è','é', 'Ã', 'ò', 'ì', '¹','à°','à¨','à©', 'à', 'à²', 'à¬', 'à¹', ':-)', ':-D', ':-|', ':-S', ':-O', ':-)', ':-P', '@.@',':-+','0:-)');
$replace = array('°','&egrave;','&eacute;', '&agrave;', '&ograve;', '&igrave;', '&ugrave;','°','&egrave;','&eacute;', '&agrave;', '&ograve;', '&igrave;', '&ugrave;', '<img src="img/16x16/smile1.png"/>', '<img src="img/16x16/smile2.png"/>', '<img src="img/16x16/smile3.png"/>', '<img src="img/16x16/smile4.png"/>', '<img src="img/16x16/smile5.png"/>', '<img src="img/16x16/smile6.png"/>', '<img src="img/16x16/smile7.png"/>', '<img src="img/16x16/smile8.png"/>', '<img src="img/16x16/smile9.png"/>', '<img src="img/16x16/smile10.png"/>', );
$subject1 = $titolo;
$subject2 = $nome;
$subject3 = $post;
PHP:
<td class='forum2'>"; echo str_replace($search, $replace, $subject1);echo"</td>
Tuttavia al posto dei caratteri accentati appaiono i caratteri speciali (quelli della prima array), fatta eccezione della à che viene sostituita correttamente. Preciso che le faccine vengono sostituite correttamente con le immagini che ho inserito nella secondo array, quindi str_replace funziona, ma non legge i sostituisce i caratteri speciali. Qualcuno può aiutarmi? grazie
 
Prova a differenziare i caratterini speciali dalla lettera A in 2 array differenti
 
ciao, in che senso due array, come dovrei fare?

inoltre stavo notando che ho problemi anche con gli apostrofi, infatti se scrivo qualche parola tipo "l'acqua" mi appare questo errore:
PHP:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'acqua

PS: scusate il ritardo con cui rispondo ma ho avuto problemi con il pc
 
sono riuscito a risolvere la questione delle lettere accentate in questo modo (decisamente più semplice):
PHP:
$search  = array('°','è','é', 'à', 'ò', 'ì', 'ù','à°',':-)', ':-D', ':-|', ':-S', ':-O', ';-)', ':-P', '@.@',':-*0','0:-)');
$replace = array('°','&egrave;','&eacute;', '&agrave;', '&ograve;', '&igrave;', '&ugrave;','°','<img src="img/16x16/smile1.png"/>', '<img src="img/16x16/smile2.png"/>', '<img src="img/16x16/smile3.png"/>', '<img src="img/16x16/smile4.png"/>', '<img src="img/16x16/smile5.png"/>', '<img src="img/16x16/smile6.png"/>', '<img src="img/16x16/smile7.png"/>', '<img src="img/16x16/smile8.png"/>', '<img src="img/16x16/smile9.png"/>', '<img src="img/16x16/smile10.png"/>', );
$subject1 = $titolo;
$subject2 = $nome;
$subject3 = $post;

però ho ancora il problema delle parole apostrofate, qualcuno mi sa aiutare?
 

Discussioni simili