dポイントプレゼントキャンペーン実施中!

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

よろしくお願いいたします。

A 回答 (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]);
}
    • good
    • 2
この回答へのお礼

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

お礼日時:2007/04/11 17:58

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
    • good
    • 0
この回答へのお礼

parse_url関数なんて便利なものがあるんですね。
後ほど試してみます。

ありがとうございました。

お礼日時:2007/04/11 17:59

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!