ホームページ >バックエンド開発 >PHPチュートリアル >水平バーを %2d に変換します。これを変換するにはどのような関数が使用されますか?

水平バーを %2d に変換します。これを変換するにはどのような関数が使用されますか?

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBオリジナル
2016-06-23 14:00:491398ブラウズ

水平バーを %2d に変換します。これを変換するにはどのような関数が使用されますか?


ディスカッションへの返信(解決策)

urlencode を使用して出てきます。

明らかにカスタム関数

$s = join('%', array_merge(array(''), str_split(bin2hex('-'), 2)));echo $s;
%2d です


urlencode urldecode で出力できます。


私もそう思いますが、これら 2 つの関数を試してみても、入力はオリジナルのままです -

echo urlencode('-');echo urldecode('-');

表示されるのは -

RFC 3986: http://www.faqs.org/rfcs/rfc3986。 html

で説明されている: unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~
これらの予約されていない文字は、urlencoding の際に元の文字を使用する必要があります。つまり、
urlencode ("-")、
urlencode("letter")、
urlencode(number)
urlencode(".")
urlencode("_")
urlencode("~") はすべてオリジナルの文字です (PHP 5.3 の場合。.0 より前では、rawurlencode でエンコードされたチルダ) (~) » RFC 1738 による。)
おそらくこの説明は必ずしも正確ではありません 、
しかし urldecode("%2d") は確かに "-" です

urlencode と rawurlencode のエンコーディングは異なることに注意してください

ネットで検索するとたくさんあります

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。