- ベストアンサー
日本語の文字列のみを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エンコードする、という事です。 よろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
$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]); }
その他の回答 (1)
- saintandre
- ベストアンサー率31% (194/607)
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);
お礼
parse_url関数なんて便利なものがあるんですね。 後ほど試してみます。 ありがとうございました。
お礼
ありがとうございます。 これで何とかなりそうです。