如何将PHP文件加载到variables中?
我需要加载一个PHP文件到一个variables。 像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();
ob_get_clean()
如果您使用的是http:// ,就像build议的那样,您将只能读取PHP脚本的输出。 如果PHP脚本与运行脚本位于同一台服务器上,则只能读取该脚本。 你可以使用类似的东西
$Vdata = file_get_contents('/path/to/your/file.php");
如果你想加载文件而不通过networking服务器运行,下面的工作。
$string = eval(file_get_contents("file.php"));
这将加载然后评估文件内容。 PHP文件需要用<?php
和?>
标签完全形成,以便评估它。
理论上你可以使用fopen,然后使用stream_get_contents。
$stream = fopen("file.php","r"); $string = stream_get_contents($stream); fclose($stream);
这应该读取整个文件为您的$string,不应该评估它。 虽然我很惊讶,当你指定本地path时,file_get_contents不起作用….
或者,您可以开始输出缓冲,执行include / require,然后停止缓冲。 使用ob_get_contents(),您可以将其他PHP文件输出的内容转换为variables。
如果您的服务器closures了allow_url_fopen,则file_get_contents()将不起作用。 由于安全风险,大多数共享networking主机默认closures。 另外,在PHP6中 , allow_url_fopen选项将不再存在,所有的函数都会被设置为closures状态。 所以这是一个非常糟糕的方法来使用。
如果您通过http访问文件,则最佳select是cURL