Portál AbcLinuxu, 24. října 2025 10:32
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.