プロが教えるわが家の防犯対策術!

お世話になります。

掲示板などで、検索項目があると思います。
たとえば、テスト投稿という文字で検索した場合、http://○○.com/index.cgi?kensaku-koumoku=テスト投稿というURLになったとします。これをhttp://○○.com/index.cgi?kensaku-koumoku=%83e%83X%83g%93%8A%8DeなURLにしたいのです。

最初の検索の際は、上記のようになってくれるのですが、検索項目に当てはまる投稿が多い場合、次へというリンクがありそこにはkensaku-koumoku=テスト投稿となってしまいます。どのようにしたら、次へのリンクもkensaku-koumoku=%83e%83X%83g%93%8A%8Deのように出来るのでしょうか。
どなたか方法を教えていただけませんか。
宜しくお願いします。

A 回答 (2件)

 俺が使ってる方法は、"?" よりも右側についてのみ、



  $result =~ s/(\W)/'%'.unpack("H2", $1)/ego;

 というURLで置き換えてしまう奴です。
    • good
    • 0
この回答へのお礼

ありがとうございます。

フォームデコードの際にうまくいくのかと思っていたのですが、変換してやる必要なあるようですね。

ほんと、助かりました。
ありがとうございました。

お礼日時:2006/09/26 18:57

ANo.1の方と同じです。


よく使うのでSubルーチンライブラリとして入れてあるものを掲載します(式は昔、参考書から拝借しました)。
エンコードが目的のものです。
ついでにその逆も入れておきます。

## URLエンコード
sub URL_Encode{
my ($p01,@waste)=@_;
$p01 =~ s/([^\w])/'%'.unpack('H2',$1)/eg;
$p01 =~ tr/ /+/;
return $p01;
}

## URLデコード
sub URL_Decode{
my ($p01,@waste)=@_;
$p01 =~ tr/+/ /;
$p01 =~ s/%([a-fA-F0-9]{2})/chr(hex($1))/ge;
return $p01;
}
    • good
    • 0
この回答へのお礼

ありがとうございました。
デコードも表記していただき、大変感謝しております。

私もよく使うので、ライブラリとして保存し、使ってみようと思います。

ほんとに、ありがとうございました。

お礼日時:2006/09/26 18:59

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