Salve, devo formattare un testo, riducendo tutti gli spazi e gli a capo ad uno solo...
Come fare?
Salve, devo formattare un testo, riducendo tutti gli spazi e gli a capo ad uno solo...
Come fare?
forse con un preg_replace
l'espressione regolare potrebe essere così:
Codice PHP:
"#([\n\r\t\\s]?)[\n\r\t\\s]+#"
Ciao, non va...ma una cosa del tipo perchè non va?
$var= preg_replace("[[:space:]]+", " ", "$var");
mi dice unknow + .........
P.S. dovrebbe ridurre tutti gli spazi e gli a capo a uno solo...
Prova questoOriginariamente inviato da gio-mx
Ciao, non va...ma una cosa del tipo perchè non va?
$var= preg_replace("[[:space:]]+", " ", "$var");
mi dice unknow + .........
P.S. dovrebbe ridurre tutti gli spazi e gli a capo a uno solo...
$messaggio = str_replace(array("\n","\r"),'',$messaggio);
Ciao, grazie...dunque:
Gli a capo me li leva tutti...come si fa a lascirane uno?
mentre gli spazi non va...
Purtroppo non conosco un modo e credo non esista quello di lasciare un a capo, o gli lasci tutti o li tiri via tutti.Originariamente inviato da gio-mx
Ciao, grazie...dunque:
Gli a capo me li leva tutti...come si fa a lascirane uno?
mentre gli spazi non va...
Per gli spazi puoi usare trim
es
$messaggio = trim($_POST['messaggio']);
1) mancano i delimitatori nell'espressione... in quella che avevo postato io i delimitatori erano gli #Originariamente inviato da gio-mx
Ciao, non va...ma una cosa del tipo perchè non va?
$var= preg_replace("[[:space:]]+", " ", "$var");
mi dice unknow + .........
P.S. dovrebbe ridurre tutti gli spazi e gli a capo a uno solo...
2) con questo tipo di funzioni per le espressioni regolari, non sono sicuro che si possa utilizzare [:space:]
Non ho capito una cosa, se tu hai "\n\n\n", devi ottenere "\n" oppure " " (spazio)?
A seconda di quello che ti serve puoi usare uno di questi due esempi:
Nel secondo esempio però potrebbe fare un po' di casino nel caso in cui trovi " \n\n" che verrebbe sostituito con " ", sarebbe eventualmente da mettere a posto.Codice PHP:
$var = "ciaooo fdsnjkfdsv dscnncds
dscds
dsaclmdsc
dscòml sclmslmdsc";
echo "<pre>";
echo preg_replace("#[ \n\r]+#", " ", $var);
echo "<hr />";
echo preg_replace("#([\n\r\\s]?)[\n\r\\s]+#", "$1", $var);
echo "</pre>";
E' un trucchetto, ma così dovresti togliere i doppi a capo e lasciarne uno:
Così i doppi spazi:Codice PHP:
while (strstr($stringa, "\n\n"))
str_replace("\n\n", "\n", $stringa);
Non l'ho provata!Codice PHP:
while (strstr($stringa, " "))
str_replace(" ", " ", $stringa);
io per elimianri i doppi a capo di messaggi inviati tramite form uso quesat funzione
ma non ho capito se e' quello che ti interessa...codice:function eliminoDoppioACapo($testo) { $var = str_replace(" ","",$testo); $testo = nl2br(str_replace("'","\'",$var)); return $testo; }![]()
http://www.mcganass.com
Ciao ragazzi, grazie...
dunque mi serve una cosa che da:
"Ecco il messaggio.
Grazie."
mi formatti in:
"Ecco il messsaggio.
Grazie."