• ベストアンサー

外部ファイルの一部を読み込む

A.phpというファイルでB.phpで使用しているソースの一部だけ、40行目~50行目までを読み込む。 というようなことは可能でしょうか? includeのようにファイルの全てを読み込むのではなく、指定した行数の箇所だけ読み込みたいです。 ちなみに、読み込むのは $sample = 100; のように変数が静的に記述されている箇所です。 どうかよろしくおねがいします。

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

  • ベストアンサー
  • root139
  • ベストアンサー率60% (488/809)
回答No.1

外部ファイルの一部だけを読込んで、その部分を実行したいということでよろしいでしょうか? 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)

回答No.2

指定行が決まっていて、分かってるんなら、 ファイルを開いて、lines[40]、lines[41]...lines[50] で、できるとは思うけど。 分からない場合は、ループして検索して、出力。 変数が記述されてるだけなら、includeで読み込んで グローバル変数で値を取得、、、じゃダメなんですよね? ”$sample = 100;”全体を読み取りたいのかな?

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • PHPでHTML文を外部読み込みする場合

    HTML+CSSを記述したPHPファイル(a.php)に、HTMLを記述したHTMLファイル(b.html)をincludeしたいと考えています。 a.phpに読み込まれるb.html部分にはa.phpで定義したスタイルを適用したく無いのですが、こういう条件を満たすにはどのような方法があるでしょうか?

    • ベストアンサー
    • PHP
  • C言語のヘッダファイルの使い方

    ヘッダファイルの使い方について質問です。 ソースファイルA、ソースファイルBで共有して使用したい変数がある場合、 Aでは「int a」と宣言し、Bでは「extern int a」と宣言すれば 同じ変数を共有出来ると認識しています。 それをヘッダファイルへ記述しておきたい場合にはどのように 宣言しておけば良いのでしょうか? ヘッダファイルに「int a」と宣言した場合は両方のソースファイルで includeした時に多重定義でエラーとなります。 では「extern int a」と宣言しておいて、両方のソースファイルで includeするのが正しいのでしょうか? 初歩的な質問で申し訳ないですが、有識者の方、教えてください。

  • 外部の変数や<?php ?>間のデータを読み込んだり、加工したり出来ますか?

    いつも助けてもらってありがとうございます。 おかげでPHPにも少しずつでもわかっていくことが出来ました。 少し知恵を分けてもらえるとありがたいです。 PHPで3箇所のページをタイマーで切り替わるようにしたいと思っています。 まず、timerというファイルに切り替えたい時間を書きました。 timerのファイルの中には 200511302100 の一行だけ書いています。 そしてこちらのPHP文章を切り替えたいページに載せています。 <?php $time_1 = file("../php/timer"); foreach($time_1 as $time_data); $a=$time_data; if ( $a > date(YmdHi)) include "a.html"; else include "b.html"; ?> 11月30日の21時になったらaというページからbというページに切り替わるようにしています。 これと同じ事を3箇所のページにも付けたいのとおもっています。 同じスクリプトを書くよりも上記スクリプトを3個所で使いまわせたら大変便利なのですが、 可能でしょうか、自分では出来そうで答えが出せませんでした。 要するに外部ファイル内の変数や上記のようなスクリプトを取り出したり加工したりしたいんです。 どなたか無知な自分にアドバイスいただけると幸いです。

    • ベストアンサー
    • PHP
  • phpの外部ファイル読み込みについて

    お世話になります。 ご教授頂きたいと思い投稿いたします。 a.phpファイル <?php include("b.php"); ?> b.phpファイル for ($i = 1; $i <= 7; $i++) { } a.phpファイルにb.phpファイルの「1~7」までの数字を表示させたいのですが、 「echo」で試しましたができませんでした。 調べ方が悪いのか検索しても、解決策が見つからなかったのでご教授頂けたら幸いです。 よろしくお願いします。

    • 締切済み
    • PHP
  • 外部ファイルのクラスのインスタンスが生成できない

    いつもお世話になっております。 PHP(Ver5.2)が利用できるレンタルサーバーを借りていろいろやっているのですが、 include_once した外部PHPファイルの中のクラス定義のコンストラクタがCallされません。 //外部クラスの記述 class A{ public function __construct(){ echo "OK"; } } //メインPHPの記述 include_once "xxx.php"; $obj = new A(); ↑におけるメインPHPをブラウザから呼び出したとき、本来なら OK とechoされるはずなのに、何も表示されません。 また、クラスAに定義したpublicなfunctionをCallしようとすると、定義されてないメソッドをCallした、とエラーになります。(インスタンス自体が生成されていない??) ファイル自体は正常にIncludeされていると思います。(ファイル名を間違ったらエラーになったから) ちなみに、クラスAの記述をメインPHPに記述すると、正常に動きます。 外部ファイルのクラスを正常に動かすにあたって、何かphp.iniあたりの編集が必要なのでしょうか? どうぞよろしくお願いいたします。

    • 締切済み
    • PHP
  • phpの外部ファイル読み込みについて

    http://okwave.jp/qa/q7803076.htmlで質問させて頂きましたが、 質問内容がおかしかったので再度投稿させて頂きたいと思います。 a.phpファイル(クライアント表示) <?php include("b.php"); ?> b.phpファイル(読み込まれるファイル) for ($i = 1; $i <= 7; $i++) { } a.phpファイルの任意の場所にb.phpファイルに記載している「1~7」までの数字を表示させたいのですが、いろいろと試してみましたがa.phpファイルでクライアント表示させると「7」や「8」と表示されてしまいうまく表示ができませんでした。 b.phpファイルに「echo $i;」をすると、やはりa.phpファイルの表示させたくない場所に1234567が表示されてしまいます。 調べ方が悪いのか検索しても、解決策が見つからなかったのでご教授頂けたら幸いです。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • phpで外部ファイルを取り込み変数にセットしたいです。

    phpで外部ファイルを取り込み変数にセットしたいです。 いつもお世話になっております。 外部ファイル(data.ini)を作ってphpで読み込み変数にセットして ブラウザに表示したいのですが外部ファイルを読み込む方法が わかりません。 外部ファイルの中身は 変数A=1 変数B=2 という変数が保存されています。 これを読み込んでphp側で取得、表示したいのですが 可能でしょうか?ご教示お願いします。

    • ベストアンサー
    • PHP
  • PHPでテキストファイルの一部を読み込ませたいです。

    PHPでテキストファイルの一部を読み込ませたいです。 PHP初心者、というか、何もわからない者です。助けてください。 PHPで.txtファイルの一部を読み込むことって可能でしょうか? 例えば、ここには一行目を読み込んで、ここには二行目を読み込む、 という感じでindex.phpの中にいくつかの行を読み込ませたいのです。 試行錯誤した結果、どうにもならず、とても困っています。 どなたかご教授頂けませんでしょうか?

    • 締切済み
    • PHP
  • require Auth.php

    require 'Auth/Auth.php'; の動作について教えてください。 サンプルソース a.php に、 「require 'Auth/Auth.php';」と冒頭に記述してありました。 PEARだと思うのですが、結局この記述は、 a.phpに、 (1)Auth.phpの内容を取り込む? (2)Auth.phpの内容を継承する? どちらの解釈の方が正しいのでしょうか? 今までrequire だと、指定したphpの内容を取り込む((1)番だと)だと認識していました。 以下ソースのように動作してると思っています。Auth.phpも同じ動作と思っていいものなのでしょうか。 ・test.php <?php echo "start!!\n"; include("include.php"); echo "end!!\n"; ?> ・include.php <?php echo "include start!!\n" ?> ●実行結果 start!! include start!! end!!

    • ベストアンサー
    • PHP
  • 外部ファイル作成でのエラー

    つも大変お世話になっています。 どうしてなのか、まったく分からずぜひお知恵をお貸し下さい 以下のソースで一部PHPを使用したいのですが、上手く行かずに混乱しております。 <div id="NAVI"> <h2 class="navi_title">Contents</h2> <ul class="navi"><!--↓↓サイト内移動用のナビゲーション↓↓--> <li class="navi_list" id="ON"><a href="./index.html">INDEX</a></li> <li class="navi_list"><a href="./about.html">ABOUT</a></li> <li class="navi_list"><a href="./sample.html">SAMPLE</a></li> <li class="navi_list"><a href="./sample.html">SAMPLE</a></li> <li class="navi_list"><a href="./sample.html">SAMPLE</a></li> </ul> </div> この部分を外部ファイルでコンテンツを外部ファイルで増やせるようにしたいのです。 そこで。 <?php require("sample.txt"); ?> をその部分に挿入し、外部ファイル(sampleに上記のソースを貼り付けました。)ですが、アップしてみるとエラーが出ていまして。 Parse error: syntax error, unexpected T_STRING in (ここはファイル名です) on line 2 と出ました。 原因が分からず、説明不足なのか不安たっぷりな感じなのですが、ぜひご教示頂けたら・・・と思います。 よろしくお願いします。

    • 締切済み
    • PHP
このQ&Aのポイント
  • DCP-L2550DWを使用していますが、パソコンでプリンターがオフライン表示になり、印刷できなくなりました。ドライバーの再インストールを試みていますが、無線LANウィザードが進められません。
  • ネットワークの自動検索ができず、一時的にUSBケーブルで接続しても製品が見つからないというメッセージが表示されます。
  • 対処法としては、まずドライバーのアンインストールを行い、再度最新のドライバーをインストールしてみてください。また、USBケーブルでの一時的な接続が上手くいかない場合は、ワイヤレス設定をリセットし、再度試してみてください。
回答を見る