Apache2.2-PHP包括来自根文件夹

时间:2015-07-19 18:07:04

标签: php html

我目前正在同时学习HTML,JS和PHP(为什么不学习?)

在PHP中实现header.html并不是那么有趣。

只需添加:

即可在主页面或“index.php”上运行
<?php include("header.html");?>ex.php

然后添加其他页面:

<?php include("../header.html");?>ex.php

但是过了一会儿你忘记了需要放入多少“../../../”才能到达服务器文件夹的根目录。有没有办法轻松到达网络服务器的根目录?简单地说“/header.html”没有用完。

任何想法?

解决方案:

我目前的解决方案很简单,将标题路径设置为

/home/yuannan/Web/header.html

或者您的文件来自服务器的ROOT而不是Web服务器

2 个答案:

答案 0 :(得分:0)

我通常做的是:

  1. 为我的php&#34;库使用标准位置&#34;文件(比如说[project_path] / lib / php /)
  2. 创建一个帮助文件&#34; setpath.php&#34;这将设置正确的PHP路径。在这个文件中,我使用了与webroot无关的相关路径:

    function setPath() {
        // get the path to the root folder of the 
        // project using our current known location
        $bn = dirname(dirname(dirname(__FILE__)));
    
        // Get absolute path
        $bn=realpath($bn)."/";
    
        // Extend with all needed paths (few examples)
        $new_paths = $bn.PATH_SEPARATOR."$bn/db".PATH_SEPARATOR."$bn/templates";
    
        // Set the environment
        set_include_path(get_include_path() . PATH_SEPARATOR . $new_paths);
    }
    
  3. 现在每个文件都需要知道如何包含它并调用setPath(),所以从你的索引这是include("lib/php/setpath.php"),从你的lib / php / db这将是{{1} }。

  4. 现在,您可以在不知道其精确位置的情况下包含已注册路径中的任何文件
  5. 此外,我发现使用Autoloading可以省去你手动计算依赖关系的大量工作......

    最后,在某些情况下,需要知道服务器webroot。在这些情况下,我使用类似下面的内容(也在我的lib / php /文件夹中),它提供文件系统路径和项目的webroot作为GLOBAL变量(......有些人可能会说不好的做法...)

    include("../setpath.php")

    我使用上述工具以及一些Autoloader作为我项目的基础。希望能帮助您或激励某人提供更好的解决方案。

    安德烈亚斯

答案 1 :(得分:0)

我为我的网站所做的只是设置一般文件路径,然后在<body>标记下方的整个网站中使用它。非常简单明了。只需确保您的$Filepath指向存储头文件的任何位置,它将减轻必须为每个文件层使用反引号的问题。像这样:

    <?php
        {
        $Filepath= "c:/wamp/www/";
        include ("{$Filepath}header.php");
        }
    ?>