nl2br e stripslashes

andrex1191

Utente Attivo
5 Apr 2011
78
0
0
Salve,
Quando estraggo un campo MEDIUMTEXT dal mio database dovrei sostituire gli eventuali \r\n con <br> ed eliminare le backslash aggiunte all'inserimento con la funzione addslashes..

All'estrazione ho provato cosi':
PHP:
$campotesto = stripslashes(nl2br($vett['campotesto']));

Se ad esempio il campo è "l\'orso polare\r\n ciao ciao ragazzi "
utilizzando quel codice mi viene fuori "l'orso polarern ciao ciao ragazzi"

Ho provato anche in altri modi ma non riesco, dove sbaglio?
Grazie
 
C'è qualcosa che non va nel modo in cui tratti la stringa, perché se scrivo:
PHP:
var_dump(stripslashes(nl2br("l\'orso polare\r\n ciao ciao ragazzi")));
Ottengo:
Codice:
string(39) "l'orso polare<br />
 ciao ciao ragazzi"
Sei sicuro di non racchiuderla tra apici singoli da qualche parte?
 
Ho risolto. La tua espressione "C'è qualcosa che non va nel modo in cui tratti la stringa"
mi ha fatto riflettere. Il problema infatti era a monte..

Mi è bastato aggiungere la funzione nl2br (oltre a addslashes) all'inserimento del campo nel db.
In modo che nel db venga scritto "l\'orso polare <br /> ciao ciao ragazzi"

e quando estraggo utilizzo solo stripslashes e il risultato è perfetto.

Grazie mille
 
ciao
alex ha perfettamente ragione
prova a fare
PHP:
var_dump($vett['campotesto']);
$vett['campotesto'] = stripslashes(nl2br($vett['campotesto'])); 
var_dump($vett['campotesto']);
così vedi cosa entra in $vettore e puoi regolarti di conseguenza.

p.s.
per una verifica (inutile) ho provato tutte le combinazione, iniziando da
PHP:
$vett['campotesto']=addslashres($vett['campotesto']);
//ecc...
e il risultato è sempre quello che dice alex
 
E se provassi a seguire questa pillola?
[non è una pubblicità ad altri forum, non si sa mai come viene presa]
L'ho letta con attenzione e mi sembra abbastanza chiara.
Non l'ho testata, ma leggendo i commenti direi che dovrebbe andare tutto per il verso giusto.
 
Ultima modifica:
E se provassi a seguire questa pillola?
[non è una pubblicità ad altri forum, non si sa mai come viene presa]
L'ho letta con attenzione e mi sembra abbastanza chiara.
Non l'ho testata, ma leggendo i commenti direi che dovrebbe andare tutto per il verso giusto.
Attento perché in quella pillola si utilizzano le funzioni ereg che sono ormai deprecate con le ultime versioni di PHP.
 
Si ma potrebbe sempre usare la funzione STR_REPLACE(). Correggimi se sbaglio.
 
E se poi l'utente dovesse modificare nuovamente il campo? Si troverebbe dei <br /> senza sapere da dove provengano.

Alla fine ho risolto come ho spiegato sopra..il problema se l'utente dovesse modificare nuovamente il campo non sussiste poichè nel mio caso solo l'amministratore può modificare un articolo

Grazie a tutti :)

Saluti