Autor Zpráva
BuGeR
Profil
Zdravím.
Chtěl jsem se zeptat, existuje nějaká funkce, která by mi vypsala všechny parametry do pole?
Např. mám adresu http://example.com/index.php?parametr1=nekdo&parametr2=nekam&parametr3=sel
A z té bych potřeboval získat takovou proměnnou:
$gets = array(
  "parametr1" => "nekdo",
  "parametr2" => "nekam",
  "parametr3" =>" sel
);
Zkráceně řečeno - prostě takové otočené http_build_query.
Díky moc :-)
Someone
Profil
Hm.. co třeba $_GET ?
BuGeR
Profil
Someone:
Děkuji za odpověď :-). Ale asi jsi mě špatně pochopil, já mám jen tu URL, nic víc, a z té to potřebuju získat.
Samozřejmě pokud bych na ní měl přístup, tak si to vypíšu přes $_GET :-).
Someone
Profil
$url = "http://example.com/index.php?parametr1=nekdo&parametr2=nekam&parametr3=sel";
$pole = explode ("?",$url);
$pole = explode ("&",$pole[1]);
foreach ($pole as $parametr => $hodnota) {
echo $parametr."=>".$hodnota;
}

Píšu z hlavy, takže je možné, že tam bude někde chybka. edit: Tím chybka jsem myslel "všechno je špatně" :)
BuGeR
Profil
Someone:
Supr, díky, explode() mě taky napadlo, ale není tam na to moc dobrá spolehlivost, protože nikdy nevím jestli tam je jeden a nebo víc parametrů (abych mohl "explodovat" &, tak potřebuju alespoň 2), apod. Řešil bych to možná přes reg. výraz, a nebo přímo nějakou základní funkcí php.
Someone
Profil
Jak jsem říkal nějaká ta chybka se najde.. tady je to celé špatně [#4] nerozdělí to na parametr a hodnotu.. ignoruj to, je to ukázka toho jak se to nedělá. :)


Po úpravě.
$url = "http://example.com/index.php?parametr1=nekdo&parametr2=nekam&parametr3=sel";
$pole = explode ("?",$url);
if (substr_count($pole,"&")>0) {
$pole = explode ("&",$pole[1]);
foreach ($pole as $parametr_hodnota) {
$pole2 = explode("=",$parametr_hodnota);
echo $pole2[0]."=>".$pole2[1];
}
} else {
$pole2 = explode("=",$pole[1]);
echo $pole2[0]."=>".$pole2[1];
}
Kcko
Profil
BuGeR:
parse_str
BuGeR
Profil
Someone, Kcko:
Supr, díky :-)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0