这是一种使用PHP的可移植方式吗?

时间:2016-03-03 21:43:01

标签: php php-include

我正在创建一个网站,我希望使用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';

1 个答案:

答案 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中使用相对路径,而不是更改搜索路径。我认为它使您的代码更容易理解。