[ dr ZiDoo @ 24.03.2004. 16:45 ] @
Kako bi razbili string tipa: Code: rijec1 rijec2 rijec3 rijec4 rijec5 Problem je u tome sto broj razmakak izmedju rijeci nije stalan, nego moze da bude bilo kakav, ali radi se samo o razmaku. |
[ dr ZiDoo @ 24.03.2004. 16:45 ] @
[ popeye @ 24.03.2004. 17:09 ] @
Code: function razdeli($recenica) { $reci = explode(" ", $recenica); foreach($reci as $rec) { if ($rec) $konacno[]=$rec; } return $konacno; } $recenica = "piece1 piece2 piece3 piece4 piece5 piece6"; $reci = razdeli($recenica); foreach($reci as $rec) echo $rec."<br>"; [Ovu poruku je menjao popeye dana 25.03.2004. u 02:01 GMT] [Ovu poruku je menjao -zombie- dana 25.03.2004. u 07:43 GMT] [ Gojko Vujovic @ 24.03.2004. 18:11 ] @
Code: $recenica = "piece1 piece2 piece3 piece4 piece5 piece6"; $reci = preg_split("/[\s,]+/", $recenica); foreach($reci as $rec) echo $rec."<br>"; [ popeye @ 24.03.2004. 19:29 ] @
Hm... obrisi ono sto sam postovao gore... ;)
[ Gojko Vujovic @ 24.03.2004. 20:06 ] @
Neka, nije loše da skupimo više rešenja, vrlo je moguće da je moje sa regexpom koji svaki put treba da se kompajlira i sporije za neke situacije. Naravno ako se ne izvršava par stotina puta na stranici onda i nije strašno pošto su serveri brzi ovih dana, ali treba znati da to verovatno može da se optimizuje. Ako je bitna brzina, izmerite izvršavanje jednog i drugog rešenja u loopu od 10.000 ponavljanja ili više, pa izračunajte procentualno dobitak ako ga ima.
[ popeye @ 24.03.2004. 23:53 ] @
Na navedenom stringu, pri 10.000 izvrsavanja, rastavljanje putem regularne izjave je 7x brze od moje funkcije sa explode()...
Citat: Vreme 1: 0.741962 sekundi. Vreme 2: 0.108862 sekundi. [ arsa xx @ 25.03.2004. 01:05 ] @
Verovatno zavisi i od toga kolko ima blanko razmaka!
Obe metode zavrsavaju posao, kao sto rece gojko brzi su serveri, i u vecini slucajeva oba zavrsavaju posao. Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|