CGIスクリプトで質問です。


特定のサーバからJavaScript等を呼び出すサービス(MyClipやBlogPeople等)を使用する際に、特定の文字列を指定の文字列に変換させて、WEBサーバに転送したいのですが、そのためのコードを教えてください。

例:<li> → <p>, </li> → </p>
  (本来の表示 → 転送後の表示)

ちなみに、LWP使用可能サーバです。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2005/05/16 11:48:10
  • 終了:--

回答(3件)

id:andi No.1

andi回答回数448ベストアンサー獲得回数02005/05/16 12:55:59

ポイント10pt

意図が微妙に分かりませんが、こういうことですか?


$string = ”ab<li>de</li>ef”;

$string =~ s!<(/?)li>!<$1p>!g;

id:dodonga

取得したデータが$dataに入っているのですが、その中から特定の文字列を探し出して書き換える、という作業をしたいのです。

HTMLタグでデザインを修正したりするほかに、ダーティワード(fuckやShitなど)を伏字(fu*kやSh*t)にさせたりしたいですが。

2005/05/16 14:43:14
id:andi No.2

andi回答回数448ベストアンサー獲得回数02005/05/16 15:06:55

ポイント70pt

最初の物の発展系ですが、こんな感じで如何でしょうか。

%regexp_listに設定された文字列を正規表現で全て書き換えます。

この%regexp_listの中身を別ファイルなどにするとさらに使いやすくなるかと思います。


%regexp_list = (

’<li>’ => ’<p>’

, ’</li>’ => ’</p>’

, ’fuck’ => ’fu*k’

, ’Shit’ => ’Sh*t’

);


$data = ’

aa<li>fuck</li>bb

’;


foreach my $key (keys %regexp_list){

$data =~ s!$key!$regexp_list{$key}!gi;

}


print $data;

id:dodonga

ありがとうございます。「’」を「”」にするとできました。

このスクリプト単体では文字の書き換えに成功しました。

しかし、フリーで配布しているスクリプト(Javascriptの転送をしてくれる)に適用してみたのですが、上手くいきませんでした。

2005/05/16 16:46:52
id:typista No.3

typista回答回数359ベストアンサー獲得回数72005/05/16 15:26:44

ポイント10pt

http://www.rfs.jp/sitebuilder/perl/02/09.html#■置換演算子:detail]

CGIと言われているのはPerlで良いのでしょうか?

正規表現を使って置換したいってことですよね?

正規表現についても、参考URLを見てみてください。

id:dodonga

はい、言語はPerlです。自分で配布スクリプトをカスタマイズするのには、少し私には難しいと観ました。

ここでそのスクリプトを指定すると問題がありそうなので、どなたか個人的に観ていただければ、300pt程お贈りできると思います。

2005/05/17 10:10:41

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません