【PHP】PHPでそのファイルが格納されているディレクトリ名を変数に代入する方法を教えてください。

このQ&Aのポイント
  • PHPでファイルが格納されているディレクトリ名を変数に代入する方法を教えてください。
  • 別のファイルに格納されている変数(フォルダ名=変数名)を呼び出して、フォルダ名を出力する方法を教えてください。
  • PHPの構文を使用して、ファイルのディレクトリ名を取得する方法を教えてください。
回答を見る
  • ベストアンサー

【PHP】PHPでそのファイルが格納されているディレクトリ名を変数に代入する方法を教えてください。

別のファイルに格納されている変数(フォルダ名=変数名)を呼び出して、書き出したいのですが、echoして書き出してもフォルダ名しか書き出すことができません。 --------- ・別ファイルに$folderを作成。  $folder無いはhtmlを書いています。  - echo $folder;  - と書くと思ったものが表示されます。  -- しかし、ファイル名が多いので中のプログラムをいじらずに書き出ししたいのです。 ・フォルダの名前を取得  Test/01/folder/index.phpから"folder"を取得したい。  ↓は検索で出てきた構文です。  -----  $list = split( "/", $_SERVER[ SCRIPT_NAME ] );  $name = $list[ count( $list ) - 2 ];  ----- ・別ファイルに格納されている$folderの変数を呼び出して書き出して、  $folderの中身が書き出される。  (現在この状態で、echo $name;をするとfolderとだけ書き出されてしまいます。)  ・・・というのが理想です。  宜しくお願いします。

  • PHP
  • 回答数3
  • ありがとう数2

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

  • ベストアンサー
  • tany180sx
  • ベストアンサー率63% (239/379)
回答No.3

// こういうこと..? $path = 'folder/code.php'; $name = basename(dirname($path)); require $path; $html = $$name; echo $html;

koro-nya
質問者

お礼

ありがとうございます。 それでいけました。 $$hogeで変数に再設定できるんですね もっと勉強してがんばります。

その他の回答 (2)

  • ts3m-ickw
  • ベストアンサー率43% (1248/2897)
回答No.2

う~ん、何がしたいのかまったく判らんですね。 欲しいのがファイルリストであるのなら、exec('ls -l $name')して結果を編集して出力するのが手っ取り早いんじゃない?

koro-nya
質問者

補足

すみません。。。 ファイルリストから情報を取得して読み込めたらいいのですが、 1つのデータに対して1つのPHPを割り当てていて、 そのデータ数が100近くあるのでどうやって振っていったらいいのかが・・・ なので現状では、 ”Test/common/code01.php”の中に一つずつ変数を当てて、一つずつ手書きしているのが現状です。 それだと大変だったので、変数を読み込んで、フォルダをコピーして、変数定義さえすれば簡単に複製できるようにしたいな。と思って質問いたしました。 せっかく質問を見ていただいたのにまったく判らん説明しかできなくて恐縮です。

回答No.1

ごめんなさい、何度も読みましたが、結局何をどうしたいのかが分かりませんでした。 > ・フォルダの名前を取得 >  Test/01/folder/index.phpから"folder"を取得したい。 >  (現在この状態で、echo $name;をするとfolderとだけ書き出されてしま > います。) これで要望叶っているのでは?で思考回路が停止しました。 コード上に$folderが存在しなければ$folderの値が出てくるはずもないので 何がしたいのか分かりませんでした。 $folderにはどういう情報が含まれており、現状ではこういう挙動(結果)を するが、本当はこういう挙動(結果)を望んでいるというのを 例も挙げて補足頂ければ回答できると思います。

koro-nya
質問者

補足

うまく説明できずにいてすみません $folderは”Test/common/code01.php”の中で変数定義していて、 $folderの中身は ---------------------------  //データ1 $folder = <<<MDA <div style="font-size:80%;"> <div class="info"> <h3><a href="javascript:void(0);" onclick="MaxMin('info1');">媒体情報</a></h3> <div id ="info1" style="display:none" class="close"> <table> <tr> <th colspan="4">データその1</th> </tr> <tr> <th>作成日</th> <td>090101</td> <th>最終更新日</th> <td>090820</td> </tr> <tr> <th>更新内容</th> <td colspan="3">テスト</td> </tr> <tr> <th>その他</th> <td colspan="3">テスト</td> </tr> </table> </div> </div> -------------------- というものを書いており、 最終的には$folderの中身をindex.phpに読み込んで表示させたいのです。 説明下手ですみません。

関連するQ&A

  • ディレクトリを含まないファイルを保持する変数名

    PHP5.2.4を使用しています。 http://localhost/aaa/test.phpのスクリプトの中で$_SERVERを見てみると [SCRIPT_NAME] => /aaa/test.php [PHP_SELF] => /aaa/test.php というようなペアがでますが、 ディレクトリを含まずtest.phpだけの場合は どのような変数名にすればよいというか、 みなさんならどのような変数名を付けますか? $SCRIPT_NAME = '/aaa/test.php' $PHP_SELF = 'aaa/test.php' $変数名 = 'test.php' //←どういう変数名が適切か

    • ベストアンサー
    • PHP
  • PHPで、オブジェクトが格納された配列を使う方法を教えて下さい。

    PHPで、オブジェクトが格納された配列を使う方法を教えて下さい。 PHP初学者です。 以下のようなプログラムを作成したいのです。 1.XML文書の内容を取得 2.XMLの要素<data>をTestDataオブジェクトに格納 3.TestDataオブジェクトの集合を持つTestDataListオブジェクトに、2で作成したTestDataオブジェクトを格納 4.XML文書に存在する<data>要素がなくなるまで2~3を繰り返す 5.全ての<data>要素を格納したら、今度はTestDataListオブジェクトから全てのTestDataオブジェクトを取得して、その中身を画面に表示 ※<data>要素は子要素<name>を持つ 作ってみたのですが、TestDataオブジェクトの格納に失敗しているのか、TestDataListからのTestData取得に失敗しているのか、画面に何も表示されません。 プログラムは以下の通りです。 ・<data>要素の中身を格納するためのクラス <?php class TestData { private $_name; public function setName($name) { $this -> _name = $name; } public function getName() { return $this -> _name; } } ・TestDataオブジェクトの集合を持つクラス <?php class TestDataList { private $_list; private $_size; public function __construct() { $_size = 0; } public function addData($data) { if(isset($_list)) { $_list[$_size++] = $data; return; } $_list = array($data); $_size++; } public function getData($index) { return $_list[$index]; } public function size() { return count($_list); } } ・画面に表示するPHPプログラム <?php require_once "TestData.php"; require_once "TestDataList.php"; $_xml = simplexml_load_file("guest.xml"); $_list = new TestDataList(); $_cnt = 0; foreach($_xml -> data as $data) { $tmpdata = new TestData(); $tmpdata -> setName($data -> name); $_list -> addData($tmpdata); $_cnt++; } ?> <html> <body> <?php print("Count:".$_cnt."<br/>"); print("Size :".$_list -> size()); for($j = 0 ; $j < $_list -> size() ; $j++) { $outdata = $_list -> getData($j); print($outdata -> getName()."<br/>"); } ?> </body> </html> ・実行結果 Count:3 Size :0 PHPに詳しい方、上記プログラムの不備を教えて下さい。宜しくお願いします。

    • ベストアンサー
    • PHP
  • PHPのCLIで取得できる変数について

    PHPのCLIからですと、 <? echo $_SERVER["SCRIPT_FILENAME"]; ?> でファイルのパス名が取得できないのですが、 この変数は取得する方法はございますか? php.iniの設定を探してみましたわかりませんでした。 セキュリティ等の理由からデフォルトでは取得できないのでしょうか?

    • ベストアンサー
    • PHP
  • 絶対パス名からファイル名を取り出して、変数に格納するバッチ

    DOSコマンドバッチで定義した変数"fullpath"に絶対フルパス名が格納されているとします。 この変数からファイル名だけを抽出して別の変数"filenae"に格納したいのですが方法がわかりません。 1. set fullpath = "C:\test\test.c" 2. ----ここの部分をどのように処理すれば?------ 3. set filename = fullpathから抽出したファイル名 私がやってみた方法として、for文とdir /bを組み合わせてみたのですが for %a in ( dir /b c:\test\test.c ) do set filename =%a 本来dir /bを実行するとファイル名のみが表示されるのに、For文をかますと絶対フルパスでfilenameに値が格納されてしまいます。 dir /b c:\test\test.cの結果を直接filename変数に格納できれば解決するのですが、コマンド結果を変数に格納するにはFor文を使わないとだめなんですよね? なにかよい方法はないでしょうか?

  • html構文をPHPの変数に正しく格納できない

    最近PHPを勉強していまして、変数の格納について、質問させていただきます。 <a href="aaa.index" onclick="window.open('bbb.php?id=ccc&adwares=ddd&url='); return false; rel='nofollow'"><img src="eee.jpg"></a> これは、とあるアフィリエイトプログラムの広告で、リンク先のページにリンクする時に、自分のidを送るというような構文(?)なのですが、 上の様な画像付リンク(アフィリエイトコード)をphpの変数に格納する場合、 <? php $url ='<a href="aaa.index" onclick="window.open(\'bbb.php?id=ccc&adwares=ddd&url=\'); return false; rel=\'nofollow\'"><img src="eee.jpg"></a>'; ?> として、 <?php echo $url ?> としましたが、新しいウインドウが出ずに、自分のサイトからのアクセスとして、 カウントされていませんでした。 どうすれば新しいウィンドウがでて、自分のサイトからのアクセスとして 認証されるでしょうか? それともそういう事は無理なのか?教えてください。

    • ベストアンサー
    • PHP
  • phpでディレクトリにあるファイル数を知るには?

    こんにちわ, 今phpであるディレクトリ以下のファイルをすべて,リスト(select)で表示したいのですが,そのフォルダにいくつファイルがあるかを知りたいのです。 $d = dir("/HOGEHOGE"); echo "<select name=\"file\" size=??? multiple>"; while($entry=$d->read()) {   echo "<option value=\"$entry\">$entry"; } $d->close(); 上記のことで???にそのファイルを入れることができれば,それができると思うのですが,何かいい方法,またはそのようなファイル数を知る「ls|wc -w」のような方法があれば教えてください。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • エクセルのファイル名に変数を指定して開く方法

    エクセルのVBA初心者です。 最近、といっても2~3日前に始めたのですが、簡単なところで つまづいてしまい、本を読んでもにっちもさっちもいかず、困っております。 下記にやりたいことと、構文を記載しますので、お手数ですがアドバイスを 頂ければ助かります。 <やりたいこと> 特定のセルに記載された文字をファイル名としたエクセルファイルを VBAで開きたい。 <構文> Sub W() Dim ファイル名 As Integer ファイル名 = Range("C5").Value Workbooks.Open "D:\日本\データ\ファイル名.xlsx" End Sub <問題点> 上記のように構文を組んでも、「実行時エラー '1004'」なるメッセージが出て 「***が見つかりません。ファイル名およびファイルの保存場所が正しいか...」とのメッセージが出てしまいます。 C5のセルにはファイル名が記載され、このファイル名を変数としたつもりです。 VBAが入っているファイルは、「日本」というフォルダに入っており、変数によるファイルは「日本」というフォルダの子供である「データ」というフォルダに入っています。 アドバイスよろしくお願いします。

  • PHPでFORMから来る変数名を変数にするには

    PHPでFORMから来る変数名を変数にするにはどうしたらよろしいでしょうか? 可変変数など調べたのですが、値を変数にすることは出来ても変数名を変数にする事は難しいようです。 <form action="reg.php"> <input type = "text" name = "comment"> <input type = "submit"> </form> このform内のnameが動的に変わるプログラムで,reg.phpにおいて名前(今ならcomment)を変数に格納したいと思っています。 reg.php 本来なら $comment = _REQUEST['comment']; とすると思うのですが、commentが動的に変動する場合、_REQUEST内をどう書き換えれば良いかが分からず困っています $dynamic_name = _REQUEST['ここをどう書けばよいでしょうか'] このことを考えてから今はform内ですが、formでなくてもどうやって書いてよいか分からず疑問に思いました 例えば $test = 'abc'; としたとき $test_name にtestという文字列を入れたい場合(つまりabcの変数名)どうやって入れたらよいのでしょうか?(もちろんtestと言う名前は動的に変わります) 詳しい方いらっしゃいましたらご回答いただければと思います。 良いアドバイスございましたら教えてください よろしくお願いします

    • 締切済み
    • PHP
  • セレクトボックスに表示されたファイル名を変数に格納する方法

    すみません、説明が足りませんでした。 あるフォルダに存在するファイルをセレクトボックスに 1行毎に1ファイル名表示させています。 そのファイル名の中から1つのファイル名を選択し、 実行ボタンを押したタイミングで、選択されたファイル名を Dimで定義した変数に格納したいのです。 私の記述では<option>タグは1つのみで複数のファイル名を 表示させています。 ///////////////////////////////////////////////////////// 現在以下のソースを記述しています。 <% Set objFS = CreateObject("Scripting.FileSystemObject") Set objFolder = objFS.GetFolder("C:\TEMP") For Each objFile In objFolder.Files str = str & objFile.Name & vbCR next %> <SELECT SIZE=20 ID=select1 NAME=select1 STYLE="width:320px" MULTIPLE TABINDEX=70> <% For Each objFile In objFolder.Files %> <option><%= objFile.Name%></option> <% Next %> </SELECT>

    • ベストアンサー
    • HTML
  • 外部ファイルに変数を格納することはできますか?

    今、手元にあるphpの書籍で変数の項目を読んでいて疑問に思ったことがあります。 外部ファイルに変数を格納し、読み込み元のファイルで出力することはできるでしょうか? 例えば、外部ファイルに次のように記載したとします。 <?php $message = "こんにちは"; ?> そして読み込み元のファイルに次のように記載したとします。 <?php echo $message; ?> この状態で2つのファイルをアップロードし、ブラウザの画面に「こんにちは」と表示されるでしょうか? できないですよね? 上記のような方法で、「こんにちは」を表示する場合、何が足りないのでしょうか?

    • ベストアンサー
    • PHP

専門家に質問してみよう