Perlについての質問箱 34箱目at TECH
Perlについての質問箱 34箱目 - 暇つぶし2ch400:デフォルトの名無しさん
08/02/11 11:28:03
>>397
答えそのものは書かないけど、以下のことが必要。
'\[google:\w+\]'の部分は'\[google:(\w+)\]'でしょうね。そうしないと
$1で受け取れないから。
置換をするなら、
$input_str =~ s/$key/conv($1, $hash{$key})/eg;
などとしておいて、
sub conv {
    my ($word, $str) = @_;
    $str =~ s/\$1/$word/g;
    $str;
}
などとでもしておくとか。
で、
URLのクエリー部分に仕込む文字列はURIエスケープが必要。
そんで、マルチバイトの場合、どの文字コードにしてからエスケープするかも
考える必要あり。
さらに、<a>と</a>の間の文字列に使用するときはサニタイズ処理が必要(XSS対策)。
>>398 の方法だと、perlコードをそのまま解釈してしまうので、別の危険あり。
「与えられた文字列」は誰が与えるのかがとても大きな問題です。
URLにリンクを張るのは、大崎氏のPerlメモが使えると思います。


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch