PHPファイルを変数にロードする必要があります。 include();
など
次のような単純なHTMLファイルをロードしました。
$Vdata = file_get_contents("textfile.txt");
しかし、今はPHPファイルをロードする必要があります。
PHPで生成されたコンテンツを取得したい場合は、使用します:
$Vdata = file_get_contents('http://YOUR_Host/YOUR/FILE.php');
それ以外の場合、PHPファイルのソースコードを取得する場合は、.txtファイルと同じです。
$Vdata = file_get_contents('path/to/YOUR/FILE.php');
ob_start();
include "yourfile.php";
$myvar = ob_get_clean();
Webサーバーを介して実行せずにファイルをロードする場合は、次のように動作します。
$string = eval(file_get_contents("file.php"));
これにより、ファイルの内容がロードされ、評価されます。 PHPファイルを評価するには、eval
の<?php
および?>
タグで完全に形成する必要があります。
http://を使用している場合、eyzeが示唆したように、PHPスクリプトの出力のみを読むことができます。 PHPスクリプト自体は、実行中のスクリプトと同じサーバー上にある場合にのみ読み取ることができます。その後、次のようなものを使用できます
$Vdata = file_get_contents('/path/to/your/file.php");
理論的には、fopenを使用してからstream_get_contentsを使用できます。
$stream = fopen("file.php","r");
$string = stream_get_contents($stream);
fclose($stream);
それはあなたのためにファイル全体を$ stringに読み込むべきであり、それを評価すべきではありません。ローカルパスを指定したときにfile_get_contentsが機能しなかったことに驚いていますが...
または、出力バッファリングを開始し、include/requireを実行してから、バッファリングを停止できます。 ob_get_contents()を使用すると、他のPHPファイルによって出力されたものを変数に取得できます。
ファイルに次のようなreturnステートメントがある場合:
<?php return array(
'AF' => 'Afeganistão',
'ZA' => 'África do Sul',
...
'ZW' => 'Zimbabué'
);
これを次のような変数に取得できます。
$data = include $filePath;
サーバーでallow_url_fopenがオフになっている場合、file_get_contents()は機能しません。ほとんどの共有Webホストは、セキュリティリスクのためにデフォルトでオフになっています。また、PHP6では、allow_url_fopenオプションはもはや存在せず、すべての関数は永続的にオフに設定されているかのように動作します。したがって、これは非常に悪い方法です。
Http経由でファイルにアクセスする場合に使用する最適なオプションはcURLです