我需要将PHP文件加载到变量中。与include();
我已经加载了一个简单的HTML文件:
$Vdata = file_get_contents("textfile.txt");
但现在我需要加载一个PHP文件。
答案 0 :(得分:110)
ob_start();
include "yourfile.php";
$myvar = 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)
file_get_contents()将无效。由于安全风险,大多数共享Web主机默认关闭它。此外,在 PHP6 中, allow_url_fopen 选项将不再存在,并且所有函数将按照永久设置为关闭的方式运行。所以这是一个非常糟糕的使用方法。
如果您通过http访问该文件,则使用的最佳选择是cURL