如何解码& 从URL,以便header()工作(urldecode无法正常工作)

Pro*_*irl 12 php header decoding urldecode

我有以下网址: $url = 'http://mysite.com/?p=welcome&x=1&y=2';

我需要解码它以便header("Location: $url");实际工作.

但是,使用urldecode($url)不起作用,因为它没有解码&- > &因此浏览器被重定向到http://mysite.com/?p=welcome&x=1&y=2失败.

我需要它来解码,使它看起来像: http://mysite.com/?p=welcome&x=1&y=2

我怎么做?

Esa*_*ija 28

试试吧 htmlspecialchars_decode

echo htmlspecialchars_decode('http://mysite.com/?p=welcome&x=1&y=2');
//"http://mysite.com/?p=welcome&x=1&y=2"
Run Code Online (Sandbox Code Playgroud)

  • 您推荐的`htmlspecialchars_decode`和其他人推荐的`html_entity_decode`有什么区别?我应该使用哪一个? (2认同)

Cod*_*ter 6

&不是URL编码(也称为百分比编码),而是HTML实体.URL编码看起来像%26.

使用html_entity_decode().


Mat*_*att 5

&未进行 url 编码。您需要使用htmlspecialchars_decode() http://php.net/manual/en/function.htmlspecialchars-decode.php