Portál AbcLinuxu, 5. května 2025 22:58
http://domain.com/aaa/bbb/ccc a v php potřebujii získat aaa == 1 bbb == 2 ccc == 3
http://domain.com/ccc/bbb/aaa a v php potřebujii získat ccc == 4 bbb == 5 aaa == 6
http://domain.com/bbb/ccc/aaa a v php potřebujii získat bbb == 7 ccc == 8 aaa == 9Schválně udávám tři stejné názvy v url, jelikož to tak potřebuji, jiné pořadí se stejným názvem má zobrazit něco zcela odlišného. Děkuji za nápovědu.
Řešení dotazu:
$paths = explode('/', parse_url($url, PHP_URL_PATH));a potom si s tim muzes delat co chces(dodavam, ze normalne v PHP nepisu..). Nebo nechapu..
$url = 'http://domain.com/xxx/yyy/zzz'; $path=parse_url($url, PHP_URL_PATH); list($trash, $part1, $part2, $part3) = explode('/',$path);priradí do $path string "/xxx/yyy/zzz" a potom do $part1 priraadí 'xxx', do $part2 dá 'yyy' atď. No a tieto stringy potom môžeš použiť do mapy mapujúcej string z $part1 na nejaké číselné ID. $part2 budeš používať, ako kľúč v nejakej inej mape atď.
$id=0; $map1=array(); $map2=array(); $map3=array(); $map1[$part1]=$id++; $map2[$part2]=$id++; $map3[$part3]=$id++;Nie?
use v6; for <aaa bbb ccc>, <ccc bbb aaa>, <bbb ccc aaa> -> @path { my %get-id = ( aaa => [ 1, { bbb => [ 2, { ccc => [3, {}] } ] } ], ccc => [ 4, { bbb => [ 5, { aaa => [ 6, {} ] } ] } ], bbb => [ 7, { ccc => [ 8, { aaa => [ 9, {} ] } ] } ], ); my %id; for @path -> $x { %id{$x} = %get-id{$x}.[0]; %get-id := %get-id{$x}.[1]; }; say %id; }Vytiskne:
{aaa => 1, bbb => 2, ccc => 3} {aaa => 6, bbb => 5, ccc => 4} {aaa => 9, bbb => 7, ccc => 8}
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.