问题很简单..看起来似乎。
错误:
警告:include(includes / navigation.php):无法打开流:第27行的C:\ xampp \ htdocs \ sub_page \ about.php中没有此类文件或目录
警告:include():在C:\ xampp \ htdocs \ sub_page \ about.php中打开'includes / navigation.php'以包含(include_path ='。; C:\ xampp \ php \ PEAR')失败第27行
我正在重做一个网站。目前我正在将它拼接到PHP中。我也有同样的方法。除了这次我正在使它更有条理。我的代码示例。
<!-- Start Navigation -->
<?php include 'includes/navigation.php'; ?>
<!-- End Navigation -->
<!-- Start Top Menu -->
<?php include 'includes/top_menu.php'; ?>
<!-- End Top Menu -->
<!-- Start Promo Menu -->
<?php include 'includes/pro_menu.php'; ?>
<!-- End Promo Menu -->
因此,让文件导航位于根目录中的includes文件夹中。让我们说上面的代码在服务页面上是'2'级别。不是1'。通常情况下我只有'1'lvl的dir,只需更改
<?php include 'includes/navigation.php'; ?>
到这个
<?php include '../includes/navigation.php'; ?>
工作得很好。
以上代码位于
的服务页面上/sub_page/services/services.php
如果我将services.php文件从上面的dir路径移动到接近root的1 lvl那么
/sub_page/services.php
并将include上的路径更改为
<?php include '../includes/navigation.php'; ?>
它工作正常。我需要能够从任何地方调用文件。有谁知道如何做到这一点?谢谢!
编辑:将使用以下作为示例。我在这一行上拉了一个路径错误
<?php include 'sub_page/about_us/includes/meta.php'; ?>
我可以使用以下代码
<?php include __DIR__ . "/includes/meta.php"; ?>
修复它。但是,如果我尝试从路径添加或删除目录级别,它将再次返回错误。同样的事情对任何其他行/路径都不起作用。
前
<?php include 'includes/navigation.php'; ?>
后
<?php include __DIR__ . "/navigation.php"; ?>
有什么想法吗?
答案 0 :(得分:1)
设置PHP的包含路径以“查看”这些文件:http://php.net/manual/en/function.set-include-path.php或使用绝对路径。
答案 1 :(得分:0)
如果我理解正确,您希望将文件(services.php)包含在不同级别的其他文件中。包含的文件本身包含一些其他文件。
您必须在services.php中使用绝对路径,例如
include __DIR__ . "/navigation.php";
然后,您在services.php中包含哪个目录级别无关紧要。无论service.php包含在哪里,__DIR__
都将始终拥有正确的services.php路径。
假设目录树:
<htdocs>/index.php
<htdocs>/includes/meta.php
<htdocs>/includes/navigation.php
<htdocs>/sub_page/about.php
navigation.php将包含在meta.php中 meta.php将包含在index.php和about.php中。
包含的路径:
meta.php:include __DIR__ . "/navigation.php";
include "includes/meta.php";
include "../includes/meta.php";
任何其他文件现在都可以包含meta.php,其路径取决于其目录级别。
meta.php中的__DIR__
将始终提供navigation.php。