• ベストアンサー

cgi(perl)で文中のURLを自動でリンクするようにしたい

CGI(perl)でログファイルから読み込んだデータの中に http://www…のようなものがあったらそれを自動で <A HREF="http://www~">http://www~</A> のような形にしたいのですが、どのように表記したらいいのでしょうか? http://を探してきて置き換えるのかとも思ったんですが、それだとどこまで、というのが 不明ですよね?

  • Perl
  • 回答数3
  • ありがとう数3

質問者が選んだベストアンサー

  • ベストアンサー
noname#225520
noname#225520
回答No.2

簡易正規表現ですが、 $data =~ s/(s?https?:\/\/[-_.!~*'\(\)a-zA-Z0-9;\/?:\@&=+\$,%#]+)/<A HREF=\"$&\">$&<\/A>/g; のように変換すれば良いでしょう。

参考URL:
http://www.din.or.jp/~ohzaki/perl.htm#httpURL
KODAMAR
質問者

お礼

回答ありがとうございます。 教えていただいた表現で無事できました。 でも自分としてはさっぱり意味がわからないので(汗)、勉強したいと思います。 ありがとうございました。

その他の回答 (2)

  • mrumesuke
  • ベストアンサー率45% (254/557)
回答No.3

> http://を探してきて置き換えるのかとも思ったんですが、それだとどこまで、というのが > 不明ですよね? 参考サイトが解決に導いてくれるかも。

参考URL:
Perlメモ:自動で URI(URL) のリンクを張る http://www.din.or.jp/~ohzaki/perl.htm#AutoLink
KODAMAR
質問者

お礼

回答ありがとうございます。 #2の方に教えていただいたけど、さっぱりわからないので、勉強しようと思います。 教えていただいたURL参考にさせていただきます。 ありがとうございました。

  • kou2000
  • ベストアンサー率29% (14/48)
回答No.1

ログファイルはどのような形式でかかれたものですが? あまりに漠然としているので補足していただけないでしょうか?

KODAMAR
質問者

お礼

回答ありがとうございます。 ログファイルは ------------------------------ 日付<>タイトル<>中身 日付<>タイトル<>中身 日付<>タイトル<>中身 日付<>タイトル<>中身 日付<>タイトル<>中身 ------------------------------ のような感じになってます。

関連するQ&A

  • cgi(perl)を実行のみしたい

    HTMLよりCGI(PERL)を起動し、ログファイルの読み書きを実行し、そのまま終了させることは出来ないでしょうか? CGIからデータを戻す必要は無く、ブラウザへの表示はHTMLファイルがそのまま表示される形で問題ありません。 宜しくお願いします。

  • CGIからCGIへの(GET属性)リンクについて

    CGI(Perl)ゲームを作っていて個人名での戦闘ログを一覧表示するプログラムを作っていて下記の表示になるように作りました。 「Viewer.cgi?name=hogehoge&…(略」 ファイル名 攻、守 1.cgi   守備側 7.cgi   攻撃側 16.cgi   攻撃側     :     : (1~16.cgiはログファイルで読み込み専用です) これからさらに1.cgi、7.cgi・・・とリンクで単体ファイル毎のログを表示させたいと思い、<a href=http://~/log_viewer.cgi?name=16.cgi>と書いてリンクしてみたのですが、うまくいきませんでした。GET属性のように送るにはフォームからGET属性を付けて送るしかないのでしょうか? リンクのテキストリンクでの送信方法(その後にやらなければいけないこと等)、もしくはフォームでテキストリンクでの送信方法を教えていただきたいです。無理でしたら出来る限りテキストリンクになるような方法でも構いません。どうかよろしくお願いします。

    • ベストアンサー
    • CGI
  • Perl CGI Autolink

    http://wwwとhttps://wwwが混在する文章を、<a href="http://www">http://www</a>や<a href="https://www">https://www</a>にAutolinkするような変換は、Perl CGIでどのようにプログラミングするかを教えてください。http://wwwとhttps://wwwが混在する文章であることがポイントです。

    • 締切済み
    • CGI
  • URLでのCGIの表記のされ方について

    お世話になります。 最近CGIを組み込んだサイトの修正をしなければならなくなったのですが、 どのファイルをいじっていいのかわかりません。 そこで質問ですが、サイトをブラウザで見たときに ~cgi?cmd=dp&numなどと表記されているものは ~.cgiのファイルとは別のcgiファイルを参照しているのでしょうか? ~.cgiと同じファイルを読み込んでいるのでしょうか? 意味不明な質問かもしれませんが、知っているかたいたら回答をお願いします。

    • ベストアンサー
    • CGI
  • 自動メール送信CGI

    自作CGIにて、 (1)<form><input>申込フォームより送信したデーターを 指定したフォルダにファイルの自動作成にて 個人情報とNewメンバーIDのデーターを作成&書き込みをする (2)その際に、<Select>二択選択メニューにて、 Value="A"ならば指定したAのフォルダにNewファイルを自動作成して、Value="B"ならば指定したBのフォルダに Newファイルを作成させる (3)更に別の指定したフォルダに新しいファイルを自動作成して、そこには指定のXファイルを自動的にコピー&ペーストして 例)”Xフォルダ”にあった”Xファイル”を ”Newフォルダ”の”Newファイル”にコピー (4)その際にNewファイルの【ファイル名】をNewメンバーIDと同じにしてファイルを自動作成する (5)そのNewファイルの格納場所のURLをHTTP://~の形で正確に、 申込データーに記載してあったメールアドレスに自動的に定型解説文付きでメール送信する 以上の(1)~(5)の機能を備えたCGIをPerlにて作成しています。 どなたか実際に動作するソースを参照させていただけませんでしょうか? なるべく自力でやらなければと思っているのですが 書籍(専門書)なども、どれがいいのか解かりません。 もちろん手元に5冊CGI&Perlに関する専門書がありますが 自動メール送信などの記述や詳しい内容の記載&解説がありません。 事典のような引き方で調べられるサイトは知っていますが 例文が載っていないとまだ勉強不足で理解しにくいです。 どうぞ宜しくお願いいたします。

    • 締切済み
    • CGI
  • Perl/CGIを学んでいるのですが

    Perl/CGIを独学で学んでいます。 掲示板やチャットが作成できる程度です。 私はPerl=CGIと考えていたのですが(HTMLがサイト作成に使うことのように専用の言語とでもいいましょうか)、ぜんぜん違うようです。 PerlはCGI以外に Perlではどのようなことができるのでしょうか? 大まかな認識だと ビィジュアルを持たない、(VBでいうフォームパーツですかね)バッチファイルなど? で、コマンドプロンプトで動作するようなイメージがありますが(.batを起動するとメモ帳みたいなアプリではなく、特定の処理して終了みたいな) 無知な私にPerlで出来ることをお教えください。 せっかくPerl/CGIが少しは理解できているのでPerlをもっと勉強しようかとあぐねいているとこらです。 混乱しているため変な質問でしたらすいません

  • cgiの自動起動

    cgiの起動はXXX.cgiへのリンクを貼ってクリックして起動するのが普通ですが、 <a href="http://***/XXX.cgi">cgi起動</a> ページを開くと自動的にcgiを起動させることは出来ますか?(クリックなしで...) *.htmlにどのようなtagを記述すればよいのか?よろしくご教示お願いします。

    • 締切済み
    • CGI
  • perlのcgiが動かない・・・

    cgiを組もうと思い、まずは簡単なもので試そうと思ったのですが、 うまくいかず困っています。 ↓プログラムは、こんな感じです。 ファイル名:index.cgi #!/usr/bin/perl print "<html>"; print "<body>"; print "abc"; print "</body>"; print "</html>"; <やってみたこと> ・Perlのパス「#!/usr/bin/perl」 が間違っていないか? which perl で /usr/bin/perl とでます。 ・Apache の設定が正しく行なわれているか? http://localhost でindex.htmlがきちんと表示できています。 ・「hello.cgi」 の設置場所を間違っていないか? プログラムソースが出るということは、 間違っていないのではないでしょうか? ・ためしに実行してみた TELNETで ./index.cgi <html><body>abc</body></html> とでてきました。 これはちゃんと動いているのでは?? 何か勘違いしていますか? お気づきの点を教えてください。よろしくお願いいたします。

    • ベストアンサー
    • Perl
  • CGIでリンクのような…。

    データをcgiのforを使ってデータ数分表示しています。 (タイトルのみ) そのタイトルをクリックしたらそのデータの詳細を表示するようにしたいのです。 HTMLでいうところのA HREFです。 テキストボックスを使って番号とかで検索とかも考えたのですがやはりリンクのようにしたいのです。 どのようにしたらいいのでしょうか?

    • 締切済み
    • CGI
  • perlでCGIを試みたのですが・・・

    Mac OSXでperl、cgiを作りたいと思ったのですが、どうも動きません。サンプルと全く同じ文字コード、改行コードのしています・・・エディタはmiを使っているのですが、それがいけないのでしょうか?もしmiでperlやcgiを作っている方、どのような設定をすれば良いか教えていただけないでしょうか? また、miで作成したデータをテキストエディタで開こうとすると、このテキストエンコーディングは開けませんというエラーがでます。 わかる方お願いします。

    • ベストアンサー
    • Perl

専門家に質問してみよう