如何将PHP文件加载到变量中?

时间:2009-08-13 14:15:30

标签: php file

我需要将PHP文件加载到变量中。与include();

一样

我已经加载了一个简单的HTML文件:

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

但现在我需要加载一个PHP文件。

8 个答案:

答案 0 :(得分:110)

ob_start();
include "yourfile.php";
$myvar = ob_get_clean();

ob_get_clean()

答案 1 :(得分:108)

我想您希望获得由PHP生成的内容,如果是这样,请使用:

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

否则,如果您想获取PHP文件的源代码,则它与.txt文件相同:

$Vdata = file_get_contents('path/to/YOUR/FILE.php');

答案 2 :(得分:6)

如果您使用 http:// ,正如eyze建议的那样,您将只能阅读PHP脚本的输出。如果PHP脚本与运行脚本位于同一服务器上,则只能读取它本身。 然后你可以使用像

这样的东西
$Vdata = file_get_contents('/path/to/your/file.php");

答案 3 :(得分:6)

如果要在不通过网络服务器运行的情况下加载文件,则以下内容应该有效。

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

这将加载然后评估文件内容。 PHP文件需要使用<?php?>标记完全形成eval来评估它。

答案 4 :(得分:4)

理论上你可以使用fopen,然后使用stream_get_contents。

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

那应该为你读取整个文件到$ string,不应该评估它。虽然我很惊讶当你指定本地路径时,file_get_contents不起作用....

答案 5 :(得分:2)

或者,您可以启动输出缓冲,执行include / require,然后停止缓冲。使用ob_get_contents(),您可以将其他PHP文件输出的内容转换为变量。

答案 6 :(得分:2)

如果你的文件有这样的return语句:

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

你可以把它变成这样的变量:

$data = include $filePath;

答案 7 :(得分:1)

如果您的服务器已关闭 allow_url_fopen ,则

file_get_contents()将无效。由于安全风险,大多数共享Web主机默认关闭它。此外,在 PHP6 中, allow_url_fopen 选项将不再存在,并且所有函数将按照永久设置为关闭的方式运行。所以这是一个非常糟糕的使用方法。

如果您通过http访问该文件,则使用的最佳选择是cURL