dポイントプレゼントキャンペーン実施中!

Perlで、ファイルリストを作成したいのですが、あるディレクトリにあるファイル(.htm)からファイル名、フルパス、<title>タグのタイトル部分をはきだす方法を教えてください。

A 回答 (3件)

> 指定したディレクトリのサブディレクトリもリストの対象にするにはどうしたらよいでしょうか?


opendir/readdirでは指定したディレクトリ内のファイルだけでなくサブディレクトリの名前も取得してくれます。

> (3)で、<title>と</title>の間を読み取る正規表現について、ご教授願います。
正規表現が得意でないなら使わずにすむ方法もあります(工夫次第です)。
たとえば取得したHTML全文をひとつの変数に格納し、<TITLE>と</TITLE>で順にsplitしてあげれば<TITLE>と</TITLE>の間だけ抜き出せます。タグの大文字小文字(<TITLE>と<title>)を考慮してあげる必要があります(正規表現の場合も同様ですね)。
    • good
    • 0
この回答へのお礼

早急な回答ありがとうございます。
参考にさせてもらいます。
早速、アドバイスどおりやってみたいと思います。
ありがとうございました。

お礼日時:2007/06/28 11:06

再帰的になにかするのであれば File::Find とか find.pl なども使えるかも.

    • good
    • 0

微妙にどのようなスクリプトを書きたいのかが伝わらないのですが…



(1)ディレクトリにあるファイルのリストを作成するには
opendir(DIR,"ディレクトリ");
@fnames = grep(!/^\./,readdir(DIR));
close DIR;


(2)ファイルのフルバスは環境変数$ENV{'DOCUMENT_URI'}で取得
※但し、htmlファイルから見てということになります
(1)でディレクトリを指定しているのならフルパスはわかっているのでは?


(3)<title>タグのタイトル部分を取得するには
(1)で取得したファイルのリストを使ってファイルを一つ一つオープンし、<title>と</title>の間を読み取ってあげる

この回答への補足

danmarino さん
また質問で申し訳ないですが、
指定したディレクトリのサブディレクトリもリストの対象にするにはどうしたらよいでしょうか?

(3)で、<title>と</title>の間を読み取る正規表現について、ご教授願います。正規表現が得意ではないので、もしよろしければ、サンプルコードを教えていただければと思います。

補足日時:2007/06/28 08:52
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!