$duzyazi = preg_replace("'\s+'"," ",$xxx);burada ilk parametre aranan değer ikinci ise değiştirilecek değer.
\s : [ \t\n\r\f] ifadelerini içinde taşıyan hazır bir dizi (kısaca boşluk , tab vs.. gibi ifade anlamına geliyor)
+ : 1 ya da daha fazla ifadeyi string içinde arar.
\s+ : boşluklar.
burada
\s+ karakterlerini bulup " " içinde belirtildiği gibi tek boşluğa indirgiyor.
edit: burada \s \n \s+ gibi özel karakterler
Regular Expression konusuna giriyor. googleda arama yaparak daha fazla kaynağa bakabilirsiniz.