shell cgi 编程中用于解析QUERY_STRING的函数
{
local var val
local IFS='&'
vars="&$*&"
[ "$REQUEST_METHOD" = "POST" ] && read QUERY_STRING
set -f
for item in $QUERY_STRING
do
var=${item%%=*}
val=${item#*=}
val=${val//+/ }
case $vars in
*"&$var&"* )
case $val in
*%[0-9a-fA-F][0-9a-fA-F]*)
val=$( printf "%b" "${val//\%/\\x}." )
val=${val%.}
esac
eval "$var=\$val"
;;
esac
done
set +f
}
转载自http://www.unixreview.com/documents/s=10116/ur0701i/ur0701i.htm
