0

问题很简单..看起来。


错误:

警告:include(includes/navigation.php): failed to open stream: No such file or directory in C:\xampp\htdocs\sub_page\about.php on line 27

警告:include():在第 27 行的 C:\xampp\htdocs\sub_page\about.php 中打开 'includes/navigation.php' 以包含 (include_path='.;C:\xampp\php\PEAR') 失败


我正在重做一个网站。目前我正在将它拼接到 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 -->

因此,让文件导航位于位于根目录中的包含文件夹中。假设上面的代码位于“2”级的服务页面上,而不是 1 级。通常我只有 '1' lvl 的目录,所以简单地改变

<?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

并将包含的路径更改为

<?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"; ?>

任何想法?

4

2 回答 2

1

设置 PHP 的包含路径以“查找”这些文件: http: //php.net/manual/en/function.set-include-path.php或使用绝对路径。

于 2013-06-27T16:56:22.763 回答
0

如果我理解正确,您希望在不同级别的其他文件中包含一个文件(services.php)。包含的文件本身包括一些其他文件。

您必须在 services.php 中使用绝对路径,例如

include __DIR__ . "/navigation.php";

那么它与您包含 services.php 的目录级别无关。__DIR__无论 services.php 包含在何处,都将始终拥有 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";
index.php: include "includes/meta.php";
about.php:include "../includes/meta.php";

任何其他文件现在都可以包含 meta.php,其路径取决于其目录级别。meta.php__DIR__中的内容将始终提供到 navigation.php 的正确路径。

于 2013-06-27T16:55:56.513 回答