Perlについての質問箱 34箱目
at TECH
[
2ch
|
▼Menu
]
■コピペモード
□
スレを通常表示
□
オプションモード
□このスレッドのURL
■項目テキスト
400:デフォルトの名無しさん 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メモが使えると思います。 401:デフォルトの名無しさん 08/02/11 11:57:26 >399 もちろん知ってます。 置換条件と置換パターンを配列などに保持しておく(または外部から読み込む)という考え方自体が セキュアではないということでしょうか? >400 ( )で括って無かったのは書き込み時のミスです、すみません。 手元のソースでは書かれてたんですが、適当な条件に直すときに忘れてしまったようです。
次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
レスジャンプ
mixiチェック!
Twitterに投稿
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch
4963日前に更新/153 KB
担当:undef