Autor Zpráva
Hammer
Profil *
Ahoj,
jak mám vytáhnou část odkazu, když uživatel zadá např. "diskuse.jakpsatweb.cz/?action=vtopic&forum=9" nebo "diskuse.jakpsatweb.cz/?action=vtopic&forum=9&prst=392&afas=asf3as" a já z toho potřebuji jen vtopic??
Dík za rady
Tori
Profil
např. parse_str, část za otazníkem můžete vytáhnout buď kombinací substr+strpos, regulárem, anebo parse_url.
suvel
Profil
Nebo javascriptem location.search
Hammer
Profil *
Dík, nakonec jsem vyřešil pomocí tohoto
$url = "?action=vthread&forum=9&topic=143487";
function get_string_between($string, $start, $end){
    $string = " ".$string;
    $ini = strpos($string,$start);
    if ($ini == 0) return "";
    $ini += strlen($start);
    $len = strpos($string,$end,$ini) - $ini;
    return substr($string,$ini,$len);
}
$edit = get_string_between($url, "?action=", "&");
echo $edit; 
Tori
Profil
Hammer:
Nevyřešil, počítáte pouze s jednou možností z více možných:
?action=vthread&forum=9&topic=143487 -> vthread
action=vthread&forum=9&topic=143487 ->
?foo=bar&action=vthread&forum=9&topic=143487 -> 
?forum=9&topic=143487&action=vthread -> 
?action=vthread -> 
Zkuste se přeci jen podívat na parse_str, je to spolehlivější.
Keeehi
Profil
preg_match('~action=(.*?)(?:&|$)~i',$vstup,$vystup);
var_dump($vystup);
Tori
Profil
Keeehi:
Jestli můžu navrhnout úpravu reguláru na ~(?:^|&|\?)action=(.*?)(?:&|$)~i pro případ, že název hledaného parametru je součástí názvu jiného param. Sice k tomu asi dojde zřídkakdy, ale pro jistotu.

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: