ホームページ >バックエンド開発 >PHPチュートリアル >水平バーを %2d に変換します。これを変換するにはどのような関数が使用されますか?
水平バーを %2d に変換します。これを変換するにはどのような関数が使用されますか?
urlencode を使用して出てきます。
明らかにカスタム関数
$s = join('%', array_merge(array(''), str_split(bin2hex('-'), 2)));echo $s;%2d です
私もそう思いますが、これら 2 つの関数を試してみても、入力はオリジナルのままです -
echo urlencode('-');echo urldecode('-');
で説明されている: unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~
これらの予約されていない文字は、urlencoding の際に元の文字を使用する必要があります。つまり、
urlencode ("-")、
urlencode("letter")、
urlencode(number)
urlencode(".")
urlencode("_")
urlencode("~") はすべてオリジナルの文字です (PHP 5.3 の場合。.0 より前では、rawurlencode でエンコードされたチルダ) (~) » RFC 1738 による。)
おそらくこの説明は必ずしも正確ではありません 、
しかし urldecode("%2d") は確かに "-" です
urlencode と rawurlencode のエンコーディングは異なることに注意してください