- ベストアンサー
外部ファイルの一部を読み込む
A.phpというファイルでB.phpで使用しているソースの一部だけ、40行目~50行目までを読み込む。 というようなことは可能でしょうか? includeのようにファイルの全てを読み込むのではなく、指定した行数の箇所だけ読み込みたいです。 ちなみに、読み込むのは $sample = 100; のように変数が静的に記述されている箇所です。 どうかよろしくおねがいします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
外部ファイルの一部だけを読込んで、その部分を実行したいということでよろしいでしょうか? fopen(), fclose(), fgets() などを使って、外部ファイルの該当箇所を読込み、 http://search.net-newbie.com/php/function.fopen.html http://search.net-newbie.com/php/function.fclose.html http://search.net-newbie.com/php/function.fgets.html eval() を使って実行すれば、出来ると思います。 http://search.net-newbie.com/php/function.eval.html 例) a.php ------------------------------------------------------ <?php // データ保存用の連想配列を初期化 $test_array = array(); // データ保存用の連想配列の内容を表示(空) print_r($test_array); // 読込むファイルをオープン $fh = fopen('b.php', "r"); // 先頭から5行を読み飛ばし for($i = 1; $i <= 5; $i++) { fgets($fh); } // 次の5行を処理 for($i = 1; $i <= 5; $i++) { // 一行読込み $string = fgets($fh); // 読込んだ行を実行 eval($string); } // データ保存用の連想配列の内容を表示 print_r($test_array); // ファイルをクローズ fclose($fh); ?> ------------------------------------------------------------ b.php ------------------------------------------------------ <?php $test_array['a'] = 1; $test_array['b'] = 2; $test_array['c'] = 3; $test_array['d'] = 4; $test_array['e'] = 5; $test_array['f'] = 6; $test_array['g'] = 7; $test_array['h'] = 8; $test_array['i'] = 9; $test_array['j'] = 10; ?> ------------------------------------------------------------ 蛇足ですが、もし、共通する処理を複数のプログラムで利用するのが目的であれば、その部分をクラスにまとめたり、サブルーチンとして切出した方が良いかと思います。
その他の回答 (1)
- happy_books
- ベストアンサー率28% (131/460)
指定行が決まっていて、分かってるんなら、 ファイルを開いて、lines[40]、lines[41]...lines[50] で、できるとは思うけど。 分からない場合は、ループして検索して、出力。 変数が記述されてるだけなら、includeで読み込んで グローバル変数で値を取得、、、じゃダメなんですよね? ”$sample = 100;”全体を読み取りたいのかな?