【问题标题】:PHP failed to open stream: No such file or directory ($_SERVER['DOCUMENT_ROOT'])PHP 无法打开流:没有这样的文件或目录 ($_SERVER['DOCUMENT_ROOT'])
【发布时间】:2016-12-18 04:20:39
【问题描述】:

我使用 xampp 来做一些 php 脚本。要在本地测试它,路径是“http://localhost/shopping”。

index.php

<?php include 'view/header.php' ?>
<?php include 'view/home.php' ?>
<?php include 'view/footer.php' ?>

它工作正常。

login.php

<?php include 'view/header.php' ?>
<?php include 'view/home.php' ?>
<?php include 'view/footer.php' ?>

然后我得到 login.php 的错误

Warning: include(view/header.php): failed to open stream: No such file or directory in C:\xampp\htdocs\shopping\view\login.php on line 2

Warning: include(): Failed opening 'view/header.php' for inclusion (include_path='C:\xampp\php\PEAR') in C:\xampp\htdocs\shopping\view\login.php on line 2

Warning: include(view/home.php): failed to open stream: No such file or directory in C:\xampp\htdocs\shopping\view\login.php on line 3

Warning: include(): Failed opening 'view/home.php' for inclusion (include_path='C:\xampp\php\PEAR') in C:\xampp\htdocs\shopping\view\login.php on line 3

Warning: include(view/footer.php): failed to open stream: No such file or directory in C:\xampp\htdocs\shopping\view\login.php on line 4

警告:include():在 C:\xampp\htdocs\shopping\view\login.php 中打开 'view/footer.php' 以包含 (include_path='C:\xampp\php\PEAR') 失败第 4 行

index.php 和 login.php 在 C:\xampp\htdocs\shopping

header.php、home.php 和 footer.php 位于 C:\xampp\htdocs\shopping\view

我在 SOF 上搜索了很多帖子。我也试过了

$_SERVER['DOCUMENT_ROOT']

但由于某种原因,它不起作用。我认为这很简单,但我就是做错了。

【问题讨论】:

  • 只是一种可能,header.php 是 header.php 而不是 header.php.txt(如果扩展名被隐藏)
  • 是的,它的 header.php 。不是txt文件
  • 你把完整的 index.php 和完整的 login.php 放在这里了吗?
  • 您的问题的答案在这里:stackoverflow.com/questions/36577020/…

标签: php


【解决方案1】:

include 'view/header.php'login.php 中不起作用,因为该文件已经在view 文件夹中。

将您的包含更改为始终使用完整路径。正确的路径取决于文档根目录的值,但它可能是以下之一:

include $_SERVER['DOCUMENT_ROOT'].'/view/header.php';

或者

include $_SERVER['DOCUMENT_ROOT'].'/shopping/view/header.php';

这样,相同的包含语句将适用于所有文件。您无需根据您所在的位置更改路径。

【讨论】:

  • 没有。它不起作用。我犯了同样的错误。它缺乏“购物”。警告:包括(C:/xampp/htdocs/view/header.php)。如果我更改为包含 $_SERVER['DOCUMENT_ROOT'].'/shopping/view/header.php';
  • 更一般地说,这里有一个针对此问题的故障排除清单:stackoverflow.com/questions/36577020/…
  • 当 $_SERVER['DOCUMENT_ROOT'] 的路径不起作用时,托管会发生什么?这意味着它存在于变量中并且路径是正确的,但它只能通过 IP 或网站名称工作。这是服务器配置吗?
  • @arrowman 运行一个 php 脚本,它只是:printr($_SERVER) 并检查打印的内容。也许您会发现另一个数组键可以用来代替 DOCUMENT_ROOT 用于相同目的。
  • @BeetleJuice 谢谢。但通常我什么都不做,它开始起作用了。提供商正在更改服务器上的操作系统,这可能是一个原因:/ 既然一只飞蛾与服务器有一些疯狂的事情......谢谢。
【解决方案2】:

如果你想从同一个文件夹中包含,那么只需使用文件名

<?php include 'header.php' ?>
<?php include 'home.php' ?>
<?php include 'footer.php' ?>

【讨论】:

  • 这种方式是硬编码。我想要的是软编码。有什么想法吗?
  • 在你改变你的文件夹结构之前,我认为它不是硬编码。顺便说一句,soft coding 是什么意思?
  • 当我们下载那些开源并上传到服务器或测试它的locahost时,我们只填写$db_host; $db_name; $db_user_name; $db_pass; ,但我们不会更改标题中的那些文件吗?所以同样的事情也适用于我的问题。
猜你喜欢
  • 2015-11-13
  • 2016-08-03
  • 1970-01-01
  • 1970-01-01
  • 2020-08-11
相关资源
最近更新 更多