I have this query:
list[One]=1&list[Two]=2&list[Apple]=fruit
this is the regex I use to return the values in the brackets and after the equal sign
preg_match_all('/(?<query>list\[(?<pagename>.*?)\]\=(?<parent>.*?))/',$source,$array);
returns:
One=
Two=
Apple=
Values that come after the equal sign are missing. Where’s my mistake?
By the way, this query is generated with jquery’s serialize(). Is there a better method to parse the values?
As I made in a comment, you may want to look in to parse_str
However, if you change the final
.*?to something like[^&]*then you’ll probbaly have better luck (assuming this is a GET query string (or some facsimile) as&will have to be escaped from the sequence with%26)