>> while(strpos($text,' ')) $text=str_replace(' ',' ',$text); > take bych se regularnich vyrazu nebal, jen vyse uvedeny priklad je k > nicemu - co kdyz bude vice mezer nez dve Nemas pravdu... Bude-li jich vice nez dve za sebou, vubec to nevadi - strpos() vzdy najde prvni dve a cyklus tak postupne vsechny prebytecne spaces spolyka. V tomhle jednoduchem provedeni to predpoklada, ze nejsou prebytecne spaces na zacatku textu, coz lze snadno osetrit. > nicmene kdybych nemel pouzit regularni vyrazy, a bylo by mi jedno jak > dlouho se to zpracovava - napr pred nacpanim do databaze tak bych > treba pouzil toto: > $pole1 = explode(" ", $text); > for($i=0; $i < count($pole1); $i++): > if(trim($pole1[$i]) != "") $pole2[] = $pole1[$i]; > endfor; > $text = implode($pole2, " "); Trochu zbytecne rozvlekle. Explode() v tomto pripade na miste prebytecnych spaces vyprodukuje prazdny string "", takze je tam uplne zbytecny treba ten test s trimem. Ale cele to uplne zbytecne vytvari dve pole a bude to o hodne pomalejsi nez ten muj while(strpos()... A kdyz uz, pak tedy radeji takhle: $pole1=explode(' ',$text); for($i=0;$i<count($pole1);$i++) if($pole1[$i]) $pole2[]=$pole1[$i]; $text=join(' ',$pole2); > nemusi to byt smyckou for a pod da se to resit nekolika zpusoby > Jirka Jiste. Vzdyt jsem psal, ze "...jde to udelat jeste spoustou jinych konstrukci, ale pochybuji, ze by to bylo rychlejsi, nez ten regex." ... pako Paco. ______________________________________________________________________ Reklama: Kam do kina ci divadla? http://kultura.seznam.cz
This archive was generated by hypermail 2.1.2 : 18. 08. 2002, 12:39 CEST