Portál AbcLinuxu, 9. května 2025 20:54
1) mám adresu: http://domain.ltd/firmy/abcd-sro-brno-54214/
2) vím, že: $_GET['seo_1'] obsahuje firmy a $_GET['seo_2'] obsahuje abcd-sro-brno-54214ale nevím, jak dostat tyto hodnoty z této adresy do proměnné aby výsledek byl takový?
echo $text; // abcd-sro-brno echo $id; // 54214Problém je v tom, že adresa může být i ve tvaru http://domain.ltd/firmy/abcd-sro---brno----54214/ ale před číslem bude vždy pomlčka. Pokud by prosím někdo poradil, byl bych mu moc vděčný. Děkuji uctivě za pomoc.
Řešení dotazu:
$pole = explode('-',$_GET['seo2']);
$id = $pole[count($pole)-1];
unset( $pole[count($pole)]);
$text = implode('-',$pole);
Nakonec odebrat všechny - z konce proměnné $text
echo 'text: '.$text; echo 'id: '.$id;dostanu jiný výsledek než požaduji
text: abcd-sro-brno-54214 id: 54214nebo ten script to udělá přesně takto jak to je ted? Děkuji
unset($pole[count($pole)-1]);
Navíc můj osobní názor je, že více pomlček za sebou nemá v URL co dělat..., navíc v názvu parametrů vidím "SEO", což implikuje k lepší čitelnosti a zapamatovatelnosti, takže nevím, proč by URL měla mít více pomlček.. chápu že to asi vzniká nahrazováním jiné interpunkce za pomlčku.. prostě se mi to nezdá..., navíc v názvu je číslo, přímo ID, které jistojistě půjde do DB, takže nezapomenout ošetřit vstupy, nejl0pe ID převést na číslo, a vůbec...
...nejlepší by bylo ID úplně vynechat a udělat pomocnou mapovací tabulku URL --> ID, aby ono nebylo v URL
A sorry za stylistiku a nesouhlas (.+?)-+(\d+)
. V druhé skupině pak budete mít číslo na konci, v první bude všechno před poslední skupinou pomlček.
Předpokládám, že jde o PHP:
preg_match("/^(.+?)-+(\d+)$/", $_GET['seo_2'], $matches); $text = $matches[1]; $id = $matches[2];
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.