我一直在对来自 $_get 的编码 URL 变量使用 URL 解码。
我目前面临的问题是我有一个这样编码的 URL:
blah.php?url=http%3A%2F%2Fm.youtube.com%2F#/watch?feature=player_embedded&v=zd7c5tQCs1I&desktop_uri=%2Fwatch%3Fv%3Dzd7c5tQCs1I%26feature%3Dplayer_embedded
我不确定这是哪种编码,有人可以帮助我吗?当我对此只使用“urldecode”时,它只会返回m.youtube.com
编辑:我的问题不是 url 解码不起作用,如果我手动输入这个编码的 URL 并使用 urldecode(),它就可以工作,但是当这个编码的 url 在实际的页面 url 中并且我使用 _GET 函数时,我尝试解码它会删除 URL 中“#”之后的所有内容。
<?php print urldecode($_GET["url"]);?>
它返回
"http://m.youtube.com/"
代替
"http://m.youtube.com/#/watch?feature=player_embedded&v=zd7c5tQCs1I&desktop_uri=/watch?v=zd7c5tQCs1I&feature=player_embedded"
我认为问题在于磅符号未编码,如果我刷新页面,它会删除磅符号及其之后的所有内容,那么我该如何解决这个问题?即使有井号,我还能从“GET”中检索信息吗?(#)