Newsgroup: it.comp.www.php
Titolo: Funzione che riduce gli spazi

Salve a tutti,
sapete per caso se esiste una funzione che riceve in ingresso una
stringa e trasforma gli spazi multipli in spazi singoli?
Es.
"Ciao sto  cercando     una funzione" diventerebbe
"Ciao sto cercando una funzione".
Grazie.
Lupin
-------------------------
http://www.antiloco.com/
<la directory del Web developing>
----------------------------------
Rimuovere XXX per rispondere via e-mail

"Ciao sto cercando una funzione".
Ho trovato da solo, grazie lo stesso.
$string = ereg_replace (' +', ' ', $string);


 ha scritto nel messaggio
news:3b3c602e...@newsserver.cilea.it...


il risultato č = "tanto spazio ciaooo"
Avevo gia' provato con trim, non so se e' un bug della mia versione di
PHP o cosa ma non funziona, $stringa rimane "     tanto     spazio
ciaooo   " (a video ovviamente viene visualizzato "tanto spazio
ciaooo" perche' in HTML gli spazi multiplli non sono interpretati).


 ciaooo" perche' in HTML gli spazi multiplli non sono interpretati).
Infatti, mi associo: trim() toglie gli spazi e simili inutili all'inizio e
alla fine della stringa, non tutti i doppi spazi!!!
Recita il manuale:
trim --  Strip whitespace from the beginning AND end of a string
Ehhh, Alessio, il "NON hai trovato un bel cavolo!!!" te lo potevi
risparmiare =)))
LAMASE

il risultato č = "tanto spazio ciaooo"
Provare prima no, eh?
C'e' scritto sulla documentazione: trim() e' l'equivalente di
LTRIM(RTRIM()) per i Clipperisti. Leva gli spazi prima e dopo
ed e' quindi utilissima per i database (char->varchar). Pero'
non fa NIENTE sugli spazi IN MEZZO alla stringa.
Leonardo
-- 
Nior thainig ar major i dtus an lae chugainn,
is ni rabhamar fein ann i gcoir na gceart
ach mar sheolfai aoireacht bo gan aoire,
ar thaobh na greine de Sliabh na mBan.

"LAMASE" <a@b.c> ha scritto nel messaggio
news:9hi2sd$hjd$1...@fe2.cs.interbusiness.it...

devi comunque usare trim()
se hai:
$s = "                tanto        spazio    per         fare    quello
che voglio               ";
il risultato di:
 eregi_replace(" +"," ",$s);
č " tanto spazio per fare quello che voglio " (uno spazio all'inizo e alla
fine)
Quindi devi usare:
trim($s)
per far si che diventi:
"tanto spazio per fare quello che voglio" (nessuno spazio all'inizio e alla
fine e solo uno spazio fra le parole)
insomma devi usare tutti e due, sia eregi_replace che trim per avere una
stringa pulitissima...
va be, affermazione un po' dura :-)))))
Alex


a parte il fatto che in php4 si usa ltrim() e chop()....
...devi comunque usare trim()
se hai:
$s = "                tanto        spazio    per         fare    quello che
voglio               ";
il risultato di:
 eregi_replace(" +"," ",$s);
č " tanto spazio per fare quello che voglio " (uno spazio all'inizo e alla
fine)
Quindi devi usare:
trim($s)
per far si che diventi:
"tanto spazio per fare quello che voglio" (nessuno spazio all'inizio e alla
fine e solo uno spazio fra le parole)
insomma devi usare tutti e due, sia eregi_replace che trim per avere una
stringa pulitissima...
Alex

...devi comunque usare trim()
"devi" e' una parola un po' forte. Diciamo "puoi". Il mio codice sara'
forse un po' piu' complesso del tuo:
	$answer = preg_replace( array("/^ +/", "/  +/", "/ +$/"),
				array("", " ", ""), $source);
ma, se preg_replace e' disponibile (e di solito lo e') e' piu' chiaro,
piu' estendibile, e soprattutto va due volte e mezzo piu' veloce ;-)
<Maramaldo>
BTW, dovendo sostituire spazi, non era meglio ereg_ anziche' eregi_?
</Maramaldo>
