同じディレクトリ内の各ファイルから文字列取り出し - PHPプロ!Q&A掲示板

2585

  • 0P

同じディレクトリ内の各ファイルから文字列取り出し

質問日時 / 2010年3月4日 19:19    回答数 / 2件

Questioner:  surerura  このエントリーをはてなブックマークに追加 

キーワード / glob    文字列    ファイル   

今回、同じディレクトリ内のファイルから文字列を取り出し、ドロップダウンメニューに
したく、下記コードを書きました。
動作には問題がなかったのですが、もっと簡潔なコードにできないものかと質問させて
頂きました。PHP初心者のため、ご指摘いただければと思います。

1.phpファイルのみを対象とする
2.各ファイルから特定行の文字を取り出す
3.特定行の文字はコメントとし、ブラウザ側で表示させないようにしているため
 <!-- -->の部分を取り除きたい
4.最終的に各ファイルへのドロップダウンメニューにしたい
 <option value=phpファイルへのリンク>特定行の文字

  1. <?php 
  2.   function dropdown(){
  3.   echo "<form>";
  4.   echo "<select name=url onChange=jump(this)>";
  5.   echo "<option value=# selected>"."▼バックナンバーを見る";
  6.   foreach(glob("*.php") as $file){
  7.   $data = file($file)
  8.   $commentout = array("<!--","-->");
  9.   $title = str_replace($commentout""$data[9]);
  10.   $dropmenu = "<option value=$file>"$title;
  11.   echo $dropmenu;
  12.   }
  13.   echo "</select>";
  14.   echo "</form>";}
  15. ?>

この質問への意見の募集は締め切られ、ポイントは既に配分されました。
意見を投稿することはできますが、ポイントを受け取ることはできません。



ツリー一覧

┣A01shimixあまり手を入れる部分はないですね。$commentoutへの
┗A02surerurashimixさん、ご返答ありがとうございます。 >>CODE

回答一覧

並び替え:

A01
answerershimix [3月4日 19:31] (最終編集:3月4日 19:35)

あまり手を入れる部分はないですね。$commentoutへの代入がLoopの中にありますが、Loopの外(前)でいいだろうとか、Loopの内側は
  1. $data = file($file); 
  2. echo "<option value=$file>". str_replace($commentout, "", $data[9]);
で書けるだろうくらいですね。

#あらかじめ(別のスクリプトで)別ファイルにインデックスとして書き出しておくと楽なんですが・・

この意見に回答する

ツリーへ TOPへ

A02
answerersurerura [3月7日 01:42]

shimixさん、ご返答ありがとうございます。

  1. $data = file($file);  
  2. echo "<option value=$file>". str_replace($commentout, "", $data[9]);
おっしゃるとおり、$commentoutの部分を何度もループする必要はないですね。
教えて頂いたように修正させていただきます。

> #あらかじめ(別のスクリプトで)別ファイルにインデックスとして書き出しておくと楽なんですが・・
共通のプログラムとして別ファイルから呼び出すようにするつもりなのですが、もっと簡単な方法が
あるということでしょうか?
shimixさんがお手隙の時でも、ご返答いただけるととうれしいです。

この意見に回答する

ツリーへ TOPへ

<<質問一覧へ



Pick Up Q&A

Q
負荷時のmysql_connect()エラー
 このエントリーをはてなブックマークに追加 
A
これはPHPというよりOSまたはMySQLのコミュニティで質問されたほうがいいと思います。 ぱっと思いついた範囲で記すと MySQL等のDBに「ある時点において同時に接続可能なクライアントの最大数」に制限があるよう...

>>続きを読む

今回のような実践的な経験がエンジニアのキャリアに繋がると思います。是非サービスを成功させて下さい!

▲解説者:岡本(アシアル株式会社 教育コーディネーター兼 システムエンジニア)