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


84

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

これが私の試みです:

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

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

私は何が間違っているのですか?

回答:


200

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


1
これを(クエリ部分ではなく)URLに使用する場合は、スラッシュを変換するとURLが機能しなくなることに注意してください。したがって、スペース(おそらくそのURL)を処理する必要がある場合は、str_replaceをお勧めします。
ルカシュラデク

26

プラス記号は、関数のヘルプ記載されているように、URLパラメータのスペース文字の履歴エンコーディングですurlencode()

その同じページには、必要な答えが含まれています。rawurlencode()代わりに、RFC3986互換のエンコーディングを取得するために使用してください。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.