, noCaseEq
, isWhiteSpace
, quoteStr
+ , parseWWWFormURLEncoded
)
where
where
quote :: Char -> String
quote '"' = "\\\""
- quote c = [c]
\ No newline at end of file
+ quote c = [c]
+
+
+-- |> parseWWWFormURLEncoded "aaa=bbb&ccc=ddd"
+-- > ==> [("aaa", "bbb"), ("ccc", "ddd")]
+parseWWWFormURLEncoded :: String -> [(String, String)]
+parseWWWFormURLEncoded src
+ | src == "" = []
+ | otherwise = do pairStr <- splitBy (\ c -> c == ';' || c == '&') src
+ let pair = break (== '=') pairStr
+ return ( unEscapeString $ fst pair
+ , unEscapeString $ snd pair
+ )