web-dev-qa-db-ja.com

PHPファイルを変数に読み込むにはどうすればよいですか?

PHPファイルを変数にロードする必要があります。 include();など

次のような単純なHTMLファイルをロードしました。

$Vdata = file_get_contents("textfile.txt");

しかし、今はPHPファイルをロードする必要があります。

90
Kombuwa

PHPで生成されたコンテンツを取得したい場合は、使用します:

$Vdata = file_get_contents('http://YOUR_Host/YOUR/FILE.php');

それ以外の場合、PHPファイルのソースコードを取得する場合は、.txtファイルと同じです。

$Vdata = file_get_contents('path/to/YOUR/FILE.php');
113
Alix Axel
ob_start();
include "yourfile.php";
$myvar = ob_get_clean();

ob_get_clean()

112
neobie

Webサーバーを介して実行せずにファイルをロードする場合は、次のように動作します。

$string = eval(file_get_contents("file.php"));

これにより、ファイルの内容がロードされ、評価されます。 PHPファイルを評価するには、eval<?phpおよび?>タグで完全に形成する必要があります。

6
Jess

http://を使用している場合、eyzeが示唆したように、PHPスクリプトの出力のみを読むことができます。 PHPスクリプト自体は、実行中のスクリプトと同じサーバー上にある場合にのみ読み取ることができます。その後、次のようなものを使用できます

$Vdata = file_get_contents('/path/to/your/file.php");
6
Jonathan Weiß

理論的には、fopenを使用してからstream_get_contentsを使用できます。

$stream = fopen("file.php","r");
$string = stream_get_contents($stream);
fclose($stream);

それはあなたのためにファイル全体を$ stringに読み込むべきであり、それを評価すべきではありません。ローカルパスを指定したときにfile_get_contentsが機能しなかったことに驚いていますが...

4
Zeroshade

または、出力バッファリングを開始し、include/requireを実行してから、バッファリングを停止できます。 ob_get_contents()を使用すると、他のPHPファイルによって出力されたものを変数に取得できます。

2
Alex Weinstein

ファイルに次のようなreturnステートメントがある場合:

<?php return array(
  'AF' => 'Afeganistão',
  'ZA' => 'África do Sul',
  ...
  'ZW' => 'Zimbabué'
);

これを次のような変数に取得できます。

$data = include $filePath;
2

サーバーでallow_url_fopenがオフになっている場合、file_get_contents()は機能しません。ほとんどの共有Webホストは、セキュリティリスクのためにデフォルトでオフになっています。また、PHP6では、allow_url_fopenオプションはもはや存在せず、すべての関数は永続的にオフに設定されているかのように動作します。したがって、これは非常に悪い方法です。

Http経由でファイルにアクセスする場合に使用する最適なオプションはcURLです

1
Mark