Recent posts:

パソコンについての使いこなし情報や便利な情報を紹介

PHPでGET等で受け取った文字列のうち日本語部分のみをurlencodeする

2014/08/10 17:45

PHPを用いて、GETで日本語の含まれた文字列を受け取り、その文字列のうち日本語部分をURLエンコードするサンプルを示します。URIを受け取ることを想定したサンプルです。

GETで受け取った文字列のうち日本語のみをurlencodeする

サンプル

以下にGETで受け取った文字列を日本語部分のみurlencodeして表示するサンプルを示します。

解説

最初の「function z_mb_urlencode( $str )」部分が日本語部分のみurlencodeするユーザー定義関数です。

「z_mb_urlencode」では、受け取った文字列「$str」をpreg_replace_callbackで日本語部分のみ検索し、無名変数でその日本語部分(ここでは「$matches[0]」に格納)をurlencode後、エンコードした文字列で置換しています。

※各関数の詳細についてはPHP マニュアルを参照してください

後の部分は一旦GETで受け取った文字列を変数「$uri」に格納したものを前述のユーザー定義関数で日本語部分のみurlencodeして変数「$euri」に格納、最後にechoで結果を出力という流れです。

もちろん、上記サンプルの「$_GET」部分を「$_POST」に書き換えればPOSTに対応します。また、通常の変数名に書き換えれば任意の変数に対応します。

なお、このサンプルでは「http(s)://」部分が文字列に含まれていないことを想定していますが、正規表現的にこれを含んだ文字列でも正常に変換できる(と思います)。

正規表現部分の参考:PHPについて質問です。 特定の文字列の中で、マルチバイトの文字… – 人力検索はてな

Pocket

コメント

Twitter

【更新しました】
価格が安く汎用性がありそうな新ドメインを検討する - PC雑記帳
http://zakkiweb.net/a/52/

2016/11/28 20:02

【更新しました】
ConoHaのVPSの512MBプランに申し込んでみた - PC雑記帳
http://zakkiweb.net/a/51/

2016/10/30 10:02

【更新しました】
VPSにインストールしたBitnami RedmineにNginx経由でアクセス(CentOS) - PC雑記帳
http://zakkiweb.net/a/50/

2016/09/25 12:01