webForumDet fria alternativet

Regexp för att filtrera en querystring

PHP

3 svar · 539 visningar · startad av Koplik

Medlem sedan juli 20011 129 inlägg
Frågan#1

Hej!

Nu sitter man här på pottan igen när man ska försöka och begripa sig på regexp.
Efter en del sökningar på google med tidspressen på ryggen så har jag inte lyckats få några positiva resultat.

Det jag vill göra är att filtrera bort några nycklar och värden ur en querystring som jag hämtar upp.

e.x.
todo.php?seekUser=5&seekStatus=4&seekStatusInvert=1&sortobj=description&order=asc

I denna sträng som jag fångar så vill jag plocka bort sortobj=whatever samt order=värdet. Så i stortsätt ska regexpen söka efter &sortobj= och sen fånga värdet genom att leta efter nästkommande &-tecken. Medans order= fungerar på samma sätt men kan också begränsas av längden på strängen, då det inte alltid förekommer ett &-tecken efter order.

Kan någon peka mig i rätt riktining eller kanske t.o.m. hjälpa mig med problemet, om det är någon som förstår sig på vad jag är ute efter :P

Tack på förhand.

Medlem sedan juni 20019 519 inlägg
#2

http://www.webforum.nu/showthread.php?t=161794 en ASP lösning men bör inte vara så svårt att göra om till php.

Medlem sedan juli 20011 129 inlägg
#3

voigtann1 skrev:

http://www.webforum.nu/showthread.php?t=161794 en ASP lösning men bör inte vara så svårt att göra om till php.

Guld, du är guld Voigtann1!
Tack så mycket!

Medlem sedan aug. 20039 340 inlägg
#4

PHP har även inbyggda funktioner för detta. I detta exempel ändrar jag värdet på just order istället för att ta bort den, för att visa hur man gör det.

<pre><?PHP

$oldurl = "todo.php?seekUser=5&seekStatus=4&seekStatusInvert=1&sortobj=description&order=asc";

$urlarray = parse_url($oldurl);
parse_str($urlarray['query'], $strarray);

unset($strarray['sortobj']);
$strarray['order'] = 'asc';

$newurl = "todo.php?" . http_build_query($strarray);

echo $newurl;

?>
261 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
128 ms — ändringar (db)