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


php not executing in sub directories / php only working in root directory


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

我的问题是在index.php

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

完美地执行并包括指定的文件,但在所有子目录(如/pages(中,历史中的相同php代码。php根本不执行,在源代码中留下一行空白。我认为这与我的PHP配置有关,或者说可能是错误的,但我找不到问题所在。我也试着打电话给我的网络托管提供商的技术支持,但尽管他们告诉我现在一切都应该正常,但我仍然收到了一条漂亮的空线。

我已经为我的问题寻找解决方案好几天了,但遗憾的是,到目前为止我还没有运气。希望社区能够帮助

提前感谢

如果将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>

这只是一个文件路径问题吗?如果你在一个子地图中,那么通往head.php的路径将不同:

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