通过变量包含文件
这似乎是世界上最基本的东西,但我不知道PHP。通过变量包含文件
我想在我的页面上包含一个文件,并且该文件的目录是在变量内指定的。
<?php
$pageGroup = 'news';
$directory = 'http://localhost:8888/includes/'.$pageGroup.'/rightCol.html';
include($directory);
?>
当我echo
的$directory
的结果,我得到 “http://localhost:8888/includes/news/rightCol.html”,这是完全正确的。然而,当我尝试在该目录中包含文件时,什么也没有发生。我认为这与include语法有关。
任何建议表示赞赏。
确保您已从php.ini打开allow_url_fopen
设置。
话虽如此,有连接到安全风险,请参阅:
建议:
包含文件,不要使用完整的URL路径,只使用文件/文件夹路径。
例子:
include "/includes/news/rightCol.html"; // get from specified dir
include "../rightCol.html"; // get from parent dir
include "../../rightCol.html"; // get from parent parent dir
要包含来自根目录的文件,你可能要使用前缀您的路径:
$_SERVER['DOCUMENT_ROOT'];
这段代码将会出现在几个不同的目录和子目录中的不同页面上......'/ includes/news/rightCol.html'总是会导航到PHP中的相同位置? – Squirkle 2010-07-30 13:31:31
allow_url_include也必须打开。但它肯定是一个安全风险。并且包含具有变量名称的本地文件也可能是危险的。 – Krab 2010-07-30 13:32:17
@Squirkle:它取决于你当前脚本的路径。您可以使用'../'指定最高级目录或使用绝对路径'$ _SERVER ['DOCUMENT_ROOT']。 /includes/news/rightCol.html;'。 – Sarfraz 2010-07-30 13:35:56
1.你想不包括文件,但URL 2 。转动错误显示/报告看看会发生什么 – 2010-07-30 13:27:13