• ベストアンサー

日本語の文字列のみをURLエンコードする

ある文字列の中から日本語の部分だけをURLエンコードしたいのですが、どのようにすれば良いのでしょうか。 例えば「http://ja.wikipedia.org/wiki/ウィキペディア」から「http://ja.wikipedia.org/wiki/%E3%82%A6%E3%82%A3%E3%82%AD%E3%83%9A%E3%83%87%E3%82%A3%E3%82%A2」という形にURLエンコードする、という事です。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • moon_night
  • ベストアンサー率32% (598/1831)
回答No.1

$pt = "(s?https?:\/\/[-_.!~*'()a-zA-Z0-9;\/\?:@&=+$,%#]+)(.+)"; $URL = "http://ja.wikipedia.org/wiki/?ウィキペディア"; if (preg_match ( "/$pt/", $URL, $matches)) { print $matches[1]; print urlencode ($matches[2]); }

tech_0
質問者

お礼

ありがとうございます。 これで何とかなりそうです。

その他の回答 (1)

回答No.2

parse_url関数を使ってみましたがpathの分離があるのであまり簡単にはなりませんでした。 $url = "http://ja.wikipedia.org/wiki/ウィキペディア"; $a = parse_url($url); $b = explode("/",$a["path"]); for($i=0;$i<count($b);$i++){ $b[$i] = urlencode($b[$i]); } echo $a["scheme"] . "://" . $a["host"] . implode("/",$b);

参考URL:
http://jp.php.net/manual/ja/function.parse-url.php
tech_0
質問者

お礼

parse_url関数なんて便利なものがあるんですね。 後ほど試してみます。 ありがとうございました。

関連するQ&A