HOME>WEBプログラム覚書>指定ディレクトリ内のファイルのタイトルを取得してリンクを作成

指定ディレクトリ内のファイルのタイトルを取得してリンクを作成

ディレクトリ内のファイルを取得する場合、opendir()使って やってましたがglob()という便利なものがあるんですね。

リャマ本こと

を読んでて知りました。Perlの本だけどPHPの勉強にもなります。

指定ディレクトリのタイトルを取得してリンクを作成

とりあえず多少エントリのある http://www.kantenna.com/pg/2009/01/ 内のphpファイルへのリンクを作ります。

サンプルコード

PHP

  1. <?php
  2. // 取得したいファイルがあるディレクトリ
  3. // DS = DIRECTORY_SEPARATOR
  4. $target = DS . "pg" . DS . "2009" . DS . "01" . DS;
  5.  
  6. // タイトル格納用
  7. $titles = array();
  8.  
  9. // 作業ディレクトリの移動
  10. chdir($_SERVER["DOCUMENT_ROOT"] . $target);
  11.  
  12. // .phpファイルを取得して title の中身を取得
  13. foreach (glob("*.php") as $filename) {
  14.  
  15.     $handle = fopen($filename, "r");
  16.  
  17.     while (!feof($handle)) {
  18.         $line = fgets($handle);
  19.         if (preg_match("/<title>.*<\/title>/", $line, $match)) {
  20.             $titles[] = array(strip_tags($match[0]), $filename);
  21.             fclose($handle);
  22.             break;
  23.         }
  24.     }
  25.  
  26. }
  27.  
  28. // 出力
  29. echo "<ul>";
  30. foreach ($titles as $values) {
  31.     printf('<li><a href="%s">%s</a></li>', $target . $values[1], $values[0]);
  32. }
  33.  
  34. echo "</ul>";
  35.  
  36. ?>

実行結果


Notice: Use of undefined constant CQST_APP_VIEW - assumed 'CQST_APP_VIEW' in /home/users/1/lolipop.jp-dp07173486/web/_/themes/default/views/pg/2009/03/post_42.php on line 126

Warning: chdir(): No such file or directory (errno 2) in /home/users/1/lolipop.jp-dp07173486/web/_/themes/default/views/pg/2009/03/post_42.php on line 126
    投稿日 2009年3月 5日 16:15
    カテゴリ PHP
    タグ サンプルコード | 関数
    トラックバック URL http://www.kantenna.com/cgi-bin/mt504/mt-tb.cgi/1169

    コメント

    コメントする
    Name
    Email Address
    URL