webForumDet fria alternativet

Regexp för att filtrera en querystring

3 svar · 539 visningar · startad av Koplik

KoplikMedlem sedan juli 20011 129 inlägg
#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.

voigtann1Medlem 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.

KoplikMedlem 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!

nitro2k01Medlem sedan aug. 20039 342 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;

?>
125 ms totalt · 3 externa anrop · v20260731065814-full.86db40fa
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
122 ms — hämta tråd, inlägg och bilagor (db)