URL as URL's get parameters - problem with “&”

前端 未结 3 1617
猫巷女王i
猫巷女王i 2021-01-24 16:10

There is script that receives another url as GET parameter:

script.php?file=http://www.google.com&id=123

The problem is:
when url has p

相关标签:
3条回答
  • 2021-01-24 16:47

    Try to encode every special character like this:

    script.php?file=http%3a%2f%2fwww.google.com%3fq%3dadsf%26lang%3den&id=123
    

    although it might be better and easier to use rawurlencode().

    Also, read this about URL encoding.

    0 讨论(0)
  • 2021-01-24 16:49

    You need to encode the value with the percent-encoding.

    If you’re using PHP, use rawurlencode (or urlencode if application/x-www-form-urlencoded is expected):

    $url = 'http://www.google.com?q=adsf&lang=en';
    echo 'script.php?file='.rawurlencode($url);
    
    0 讨论(0)
  • 2021-01-24 16:51

    You need to URL encode the entire URL that you are passing as a parameter to another url (your script). %26 is the correct encoding for an &. Just make sure you decode it server-side before using it. You don't say what language(s) you're using, but most, inc javascript and php have native URL encoding functions.

    0 讨论(0)
提交回复
热议问题