diff --git a/src/misc.sh b/src/misc.sh index 3e759de..15dd988 100755 --- a/src/misc.sh +++ b/src/misc.sh @@ -39,5 +39,15 @@ function post_dump() { # html_encode(string) function html_encode() { - sed 's//\>/g;s/%/\%/g;s/\//\//g;s/\\/\\/g;s/'"'"'/\'/g;s/"/\"/g;s/`/\`/g;s/?/\?/g' <<< "$1" + sed 's//\>/g;s/%/\%/g;s/\//\//g;s/\\/\\/g;s/'"'"'/\'/g;s/"/\"/g;s/`/\`/g;s/?/\?/g;s/\&/\&/g' <<< "$1" +} + +# url_encode(string) +function url_encode() { + xxd -ps -u <<< "$1" | tr -d '\n' | sed -E 's/.{2}/%&/g' +} + +# url_decode(string) +function url_decode() { + echo -ne "$(sed -E 's/%[0-1][0-9a-f]//g;s/%/\\x/g' <<< "$1")" }