Portál AbcLinuxu, 9. května 2025 20:54

Dotaz: Jak získat údaje z url

1.3.2012 14:22 Jiří P.
Jak získat údaje z url
Přečteno: 250×
Odpovědět | Admin
Dobrý den. Hledám řešení ale sám to nedám a na webu jsem nic schopného co bych nějak sám zvládl nenašel. Pokusím se napsat můj dotaz k pochopení.
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-54214
ale 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;   // 54214
Problé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:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

1.3.2012 14:43 radim
Rozbalit Rozbalit vše Re: Jak získat údaje z url
Odpovědět | | Sbalit | Link | Blokovat | Admin
Zkus příkaz explode a implode Cesta:
$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
1.3.2012 14:54 Arnošt
Rozbalit Rozbalit vše Re: Jak získat údaje z url
Tak když zadám na konci toho vašeho scriptu
echo 'text: '.$text;
echo 'id: '.$id;
dostanu jiný výsledek než požaduji
text: abcd-sro-brno-54214
id: 54214
nebo ten script to udělá přesně takto jak to je ted? Děkuji
LangPa avatar 4.3.2012 20:26 LangPa | skóre: 12 | blog: LangPavel | Hradec Králové
Rozbalit Rozbalit vše Re: Jak získat údaje z url
Řešení s regulárním výrazem níže je lepší, nicméně zde je chyba, řádek s unset musí samozřejmě vymazat poslední prvek, nikoli (první) prvek za koncem:

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 ;-)
1.3.2012 15:34 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Jak získat údaje z url
Odpovědět | | Sbalit | Link | Blokovat | Admin
Použijte regulární výraz (.+?)-+(\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];

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.