我正在学习PHP,并且刚刚发现了include关键字是多么方便,并且已经开始在我为我所工作的公司构建的网站上使用它。
现在,我正在申请此网站,使用Perch CMS进行网站部分和Perch博客扩展。
我有inlclude正在处理位于根目录中的所有文件,但其中一个文件是Perch CMS博客模板,它位于几个子目录中,PHP包含在此文件中不起作用。< / p>
我想要包含的文件目录是 ../ inc / 。
包含不起作用的Perch博客模板的目录是 ../ perch / templates / blog / 。
[编辑] 抱歉,我也忘了提一些可能很重要的内容,我使用此文件包含的文件被Perch CMS用作模板,用于显示博客帖子,它是一个普通的.html文件(虽然我的.htaccess文件中有一行允许php在.html文件中执行)。 [/ EDIT]
我正在使用wamp,在我的 www 目录中,我有多个文件夹,每个文件夹都充当不同项目的根目录,这是使用 projectName.localhost 作为地址。 例如,其中一个名为 f3racing ,地址为 f3racing.localhost ,文件夹结构为 wamp / www / f3racing / 。
在所有其他文件(位于根目录中)中,这有效:
<?php include("inc/header.php"); ?>
我试过这些:
<?php include("../../../inc/header.php"); ?>
<?php include($_SERVER["DOCUMENT_ROOT"] . "/inc/header.php"); ?>
<?php include($_SERVER['DOCUMENT_ROOT'] . "/inc/header.php"); ?>
<?php include($_SERVER["DOCUMENT_ROOT"] . "/f3racing/inc/header.php"); ?>
<?php
include(
$path = $_SERVER['DOCUMENT_ROOT'];
$path .= "/inc/header.php";
include_once($path);
);
?>
如果其中一个在正常情况下工作,我完全不知道该做什么做窝?我的意思是,如果我不使用Perch CMS,这些会起作用吗?
答案 0 :(得分:1)
您使用../
错误。
../
表示“上一个目录”。
如果您的文件位于/usr/var/www/path/
,则在该文件中执行include('../anotherfile.php')
将查找文件/usr/var/www/anotherfile.php
(请注意我们已经上了一个目录)。
您的文件位于/usr/var/www/perch/templates/blog/
,并且您希望引用/usr/var/www/inc/
中的文件。因此,您需要“返回”3个文件夹(因此您位于www
文件夹中),然后引用inc
目录,然后引用该文件。
您的内容应如下所示:
include('../../../inc/header.php');
尝试一下,这应该有用。
编辑:我不知道wamp非常好,但我想你可以在上面的例子中交换/usr/var/www
位,例如c:/Program Files/WAMP/www
或者目录路径。它的理论都是一样的。
答案 1 :(得分:0)
我看不出有什么问题:
<?php include("../../../inc/header.php"); ?>
根据您的描述,我可以收集文件:
root/inc/header.php
和另一个文件:
root/perch/templates/blog/some_file.php
其中包含上述include
。
我通过让header.php
包含echo "header.php";
然后加载some_file.php
对此进行了测试。
答案 2 :(得分:0)
原来这就是Perch CMS处理导致问题的模板文件的方式。感谢你的所有建议,答案和建议,你们不知道这是问题所在。
<强> [编辑] 强>
我会详细说明,以防其他人在将来遇到同样的问题:
我试图将php添加到perch模板文件中,位于标准安装中的 perch / templates / blog / post.html ,结果证明该文件不会在其中运行任何PHP,代码需要进入perch文件 blog / post.php 并相应地编辑post.html文件。
<强> [/ EDIT] 强>
再一次,非常感谢。