Autor | Zpráva | ||
---|---|---|---|
peter4545 Profil * |
#1 · Zasláno: 1. 10. 2010, 14:09:03
Zdravim,
trapim sa s upravou jednej premennej. Mam premenu $slovo = "text1-text2-text3-textN-cislo"; V slove moze byt niekolko vela pomlciek a ja chcem toto slovo rozdelit na: $nove1 = text1-text2-text3-textN; $nove2 = cislo; Vedeli by ste mi poradit? Dakujem. |
||
tiso Profil |
#2 · Zasláno: 1. 10. 2010, 14:23:03 · Upravil/a: tiso
peter4545:
- cez strrpos() si nájdeš pozíciu poslednej pomlčku
- pomocou substr() si rozdelíš reťazec
- ak používaš utf8 text, tak pouziješ mb funkcie |
||
peter4545 Profil * |
#3 · Zasláno: 1. 10. 2010, 14:48:35
velka vdaka tiso :)
|
||
Keeehi Profil |
#4 · Zasláno: 1. 10. 2010, 15:21:29 · Upravil/a: Keeehi
preg_match('~(.*)-(\d+)$~','text1-text2-text3-textN-654',$matches); |
||
blaaablaaa Profil |
#5 · Zasláno: 1. 10. 2010, 15:37:07
Keeehi:
Proc slozite, kdyz to jde jednoduse (a rychleji)? =) |
||
Lamicz Profil |
#6 · Zasláno: 1. 10. 2010, 17:42:49 · Upravil/a: Lamicz
blaaablaaa:
Tím bych si nebyl osobně tak jist. Součet času strrpos a substr vs. jeden ne moc složitý regulár bude imho vycházet líp pro regulár. Tím, že se používají PERL výrazy a ne POSIX, se to značně zrychlilo. Navíc regulár má velkou výhodu v univerzálnosti a přesnosti (pokud je napsán správně, to je na tom nejtěžší). S klasickými fcemi na řetězce jsem se již několikrát spálil, když dotyčný napsal nestandardní string a najednou z toho vypadlo úplně něco jiného než jsem zamýšlel. Tohle se u správně navrženého reguláru stát nemůže. |
||
Keeehi Profil |
#7 · Zasláno: 1. 10. 2010, 18:01:16
Lamicz:
strrpos() a substr() je oproti mému reguláru 3x rychlejší. Schválně jsem si to otestoval. Tipl bych si, že to bude tím, že preg_match vyhledává z leva do prava, kdežto strrpos() bude nejspíš začínat hledání z prava. Teď půjde o to, kde bude více znaků, jestli před pomlčkou, nebo za ní. |
||
blaaablaaa Profil |
#8 · Zasláno: 2. 10. 2010, 12:13:52
Lamicz:
Napsal jsem to proto, ze jsem to zkousel (cas pro 10 000 cyklu, prumer z 1000 opakovani) a str funkce jsou vice nez dvakrat rychlejsi. Pokud napise "spatny" string na vstup, skonci na tom i regular ;) Co napises, to mas ... Ale v bezne aplikaci je celkem jedno, co pouzijes |
||
Časová prodleva: 14 let
|
0