2012-07-30 8 views
9

私は、次のURLを持って動作します。は、()(urldecodeが動作していない)

それは&デコードしていないので、しかし、urldecode($url)を使用して動作していない - >&をので、ブラウザが失敗したhttp://mysite.com/?p=welcome&x=1&y=2にリダイレクトなっています。私はそれを行うにはどうすればよいhttp://mysite.com/?p=welcome&x=1&y=2

は、私はそれはそれはのように見えるようにデコードする必要がありますか?

+1

上記が誤字でない場合は、 'header(" Location:$ url ")' - ':'に注意してください。 –

+0

@Marc B:ありがとう、私のスクリプトではなく、ちょうどタイプミスでした。ちょうどそれを上に固定。 – ProgrammerGirl

答えて

19

htmlspecialchars_decode

echo htmlspecialchars_decode('http://mysite.com/?p=welcome&x=1&y=2'); 
//"http://mysite.com/?p=welcome&x=1&y=2" 
+2

あなたが推薦している 'htmlspecialchars_decode'と他の誰かが推薦している' html_entity_decode'の違いは?どちらを使うべきですか? – ProgrammerGirl

+1

@Programmer 'html_entity_decode'は、 '←'を'← 'に変換するなど、重量の高いエンティティのデコード用です。 'htmlspecialchars_decode'は、エスケープされたエスケープされたhtmlをエスケープするためだけであり、htmlをエスケープするのに必要な文字だけをデコードします。 'htmlspecialchars_decode'は意味的に正しいものですが、ここで使うことができます。 – Esailija

+1

ここでは例を見ることができます:http://codepad.org/Mv3vtrYZ – Esailija

5

&で試してみてくださいは、エンコードされたURL(別名percent-encoding)ではありませんが、HTMLエンティティです。 URLでエンコードすると、%26のようになります。

html_entity_decode()を使用してください。

4

を使用する必要があります特殊文字は対応するHTMLエンティティに置き換えられます。

関連する問題