无法让PHP include关键字起作用

时间:2013-06-13 13:42:38

标签: php html

我正在学习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,这些会起作用吗?

3 个答案:

答案 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]

再一次,非常感谢。