web-dev-qa-db-ja.com

PHP:文字列のスペースを%20に変換しますか?

文字列のスペースを%20に変換するにはどうすればよいですか?

私の試みは次のとおりです。

$str = "What happens here?";
echo urlencode($str);

出力は"What+happens+here%3F"であるため、スペースは%20として表されません。

何が間違っていますか?

76
matt

代わりにrawurlencode関数を使用してください。

181

プラス記号は、URLパラメーターのスペース文字の歴史的なエンコードです。たとえば、urlencode()関数の ヘルプに記載されている です。

同じページに必要な答えが含まれています-代わりにrawurlencode()を使用して RFC 3986 互換エンコーディングを取得します。

25
Alnitak

_%20_バリアントを使用する必要がある場合、おそらく rawurlencode() を使用できます。

19
David Thomas