人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

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

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

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

●質問者: dodonga
●カテゴリ:ウェブ制作
✍キーワード:BlogPeople CGI JavaScript MyClip Web
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● andi
●10ポイント

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


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

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

◎質問者からの返答

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

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


2 ● andi
●70ポイント

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

%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;

◎質問者からの返答

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

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

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


3 ● typista
●10ポイント

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

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

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

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

◎質問者からの返答

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

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ