php不在子目录/ php中执行只在根目录下工作

时间:2016-09-05 09:34:31

标签: php web include


我正在为朋友翻新网站,例如使编程/维护更容易。 服务器正在运行PHP 5.6,为了让我的生活更轻松,我想使用php的 include 功能轻松地在每个网页中包含头部或菜单等内容。 我使用的文件结构是 / 目录中的 index.php ,例如 / pages 中的 history.php 。我所包含的文件,例如 head.php 位于 / php

我的问题是在 index.php

<?php include ('php/head.php'); ?>

完美地执行并包含指定的文件,但是在所有子目录中,例如 / pages history.php 中的相同php代码根本不执行,只留下我在源代码中使用空行。我认为这与我的PHP配置或说可能是错误有关,但我找不到问题。我也试过打电话给我的网络托管服务提供商的技术支持但是虽然他们告诉我现在一切都应该工作但我仍然有一个漂亮的空白行。

我已经在很长一段时间内一直在寻找解决问题的方法了,但到目前为止我遗憾地没有任何运气。 希望社区能够提供帮助

提前致谢

2 个答案:

答案 0 :(得分:0)

它只是一个文件路径问题吗?如果您在子地图中,则head.php的路径会有所不同:

<?php include ('../php/head.php'); ?>

答案 1 :(得分:0)

如果将include_path设置为完整路径,那么无论您在哪个子目录中有脚本,它们都将始终使用所需文件的完整路径。

<?php
    /* If you set this on every page the path will always be correct */
    set_include_path( $_SERVER['DOCUMENT_ROOT'] . '/php/' );
    include( 'functions.php' );

?>
<!doctype html>
<html>
    <head>
        <title>Include PHP files</title>
        <?php
            include( 'head.php' );
        ?>
    <body>
        <?php
            include( 'menu.php' );
        ?>

        <!--
            regualar html,javascript etc
        -->

        <?php
            include( 'footer.php' );
        ?>
    </body>
</html>