Autor | Zpráva | ||
---|---|---|---|
loap Profil * |
#1 · Zasláno: 12. 5. 2009, 16:46:57
Ahoj, potreboval bych pomoct. Potrebuji zkratit url adresu. Dejme tomu ze mam /moje/kolo/je/hezke/hezke.htm. Potreboval bych nejakym zusobem vybrat vse krome prvniho a poslednich dvou slov. Tedy v priklade bych si predstavoval vysledek jako kolo/je. S tim ze, vsechny "slova" muzou byt jakkoli dlouhe a za kolo/je muzou byt jeste dalsi slova, ktere bych chtel vybrat.
pro pochopeni ukazu jeste jeden priklad: php/ma/opravdu/mnoho/moznosti/moznosti.htm potrebuju vybrat ma/opravdu/mnoho Predem dekuji. |
||
loap Profil * |
#2 · Zasláno: 12. 5. 2009, 17:47:41
Tak jsem si s tim zkousel pohrat a vytvoril jsem toto:
$a = explode("/","tady/bude/nejaky/strasne/dlouhy/text"); $soucet = count($a)-2; for($i=1;$i<$soucet;$i++) echo $a[$i]."/"; Ale tento muj zpusob se mi zda strasne neefektivni a zdlouhavy. Nedal by se nejak zjednodusit? Napriklad pomoci regularnich vyrazu nebo tak? Predem dekuji. |
||
Nox Profil |
#3 · Zasláno: 12. 5. 2009, 18:12:28
preg_match("/\/?[^\/]*/(([^\/]+\/)*)([^\/]+/[^\/]+\/?)/",$url, $str); var_dump($str[1]); Ikdyž to asi není nějak zázračný výraz, když bude těch položek málo, tak to asi nebude moc fungovat |
||
bohyn Profil |
#4 · Zasláno: 12. 5. 2009, 18:26:58
Nox, loap
Da se zjednodusit: preg_match("~^/?[^/]+/(.*)/[^/]+/[^/]+$~", $url, $str); var_dump($str[1]); |
||
Časová prodleva: 15 let
|
0