PDA

View Full Version : [PHP]stringa spazio uguale (" =") non riconosciuta


FullBL
08-10-2009, 17:59
Ciao a tutti, ho un problema con il php. Provo a fare str_replace(" =", "", $a); per eliminare ogni " =" dalla stringa, ma il php non fa nulla...
Inoltre ho provato con strtr
$arr = array("= "=>"", "=20"=>" ", "=E0"=>"à", "=3F"=>"?", "=3D"=>"=");
$stringa = strtr($stringa, $arr);
Tutti gli altri li cambia, uguale spazio no....
E pure con un if ($a == "= ") non entra... Qualcuno mi può spiegare perché e come risolvere questa situazione?? grazie!!


PS: ovviamente quei due caratteri sono sicuro che ci siano nella stringa!

Torav
08-10-2009, 18:19
A me funziona perfettamente. Negli esempi che hai postato quando usi il replace utilizzi " =" mentre negli altri casi "= ", hai solo copiato male o ti sei sbagliato anche nel tuo codice? Che sistema operativo e versione di php utilizzi?

FullBL
08-10-2009, 18:25
Ho solo copiato male (anche il titolo è sbagliato :doh: ), uso slackware 12, con apache 2.0 e php 5.2.8!

grazie per le risposte!


edit: credo di avere capito dove sta il problema: se copio l'uguale spazio che mi viene passato e lo incollo, scopro che in realtà è un uguale a capo.... come faccio a dire a str_replace di sostituire l'uguale a capo con niente?

riedit: trovato, si può chiudere!

($arr = array("=\r"=>"", "=20"=>" ", "=E0"=>"à", "=3F"=>"?", "=3D"=>"=");
$stringa = strtr($stringa, $arr);)

Torav
08-10-2009, 18:38
il carattere di ritorno a capo è \n (almeno su linux!) quindi puoi fare una roba tipo

str_replace("=\n", "", $a);

Fedd
08-10-2009, 18:52
il carattere di ritorno a capo è \n (almeno su linux!)
su windows è \r\n