我正在创建一个网站,我希望使用PHP向每个页面回应一些内容。
简单的方法:include ('menu.php');
不起作用,我明白了:
警告: include(menu.php):无法打开流: /home/folder/public_html/sitename.com/resources/page/index中没有此类文件或目录。第82行的PHP
警告: include(menu.php):无法打开流: /home/folder/public_html/sitename.com/resources/page/index中没有此类文件或目录。第82行的PHP
警告:包含():无法打开菜单.php'在 /home/folder/public_html/sitename.com/resources/page/index中包含(include_path ='。:/ usr / lib / php:/ usr / local / lib / php')第82行的.php
这是有问题的方法 ,有效:include(dirname(__FILE__).'../../../menu.php');
这是我之前使用但无法移植的方法:chdir('/home/folder/public_html/sitename.com'); include 'menu.php';
答案 0 :(得分:1)
如果我正确理解您的问题,您正在寻找一种无需每次都指定完整路径的方法。您可以使用set_include_path。类似的东西:
set_include_path(
get_include_path() . PATH_SEPARATOR .
realpath(__DIR__ . '/../../../')
);
include('menu.php');
然后,只要调用include
,PHP就会搜索该目录。如果您只在主要或顶级脚本中使用set_include_path
一次,则可以在每个其他脚本中没有完整路径的情况下调用include
。
我更喜欢直接在include
中使用相对路径,而不是更改搜索路径。我认为它使您的代码更容易理解。