如何使用相对路径和目录在PHP
我有200个站点,我支持,他们都使用:如何使用相对路径和目录在PHP
<?php
Include ("/_include/config.php");
?>
但打有此包括页面的时候都示数出来。我需要做些什么来解决它?
我认为这是因为它的相对路径和目录所在,我明白了,我只是不知道如何快速修复它。
的Windows 2008 R2 IIS 7.5 PHP 7
谢谢
要包含其他相对于当前脚本的路径脚本,通常的解决办法是将__FILE__
幻常量与dirname
结合功能如下所示:
include dirname(__FILE__).'/_include/config.php';
您还可以使用'..'
或嵌套调用dirname
遍历父可怕ctories:
include dirname(dirname(__FILE__)).'/_include/config.php';
// is equivalent to:
include dirname(__FILE__).'/../_include/config.php';
我同意更改所有新站点的默认值,但我需要为现有的200找出它。它是iis问题还是它是ini问题? inlcusion(include_path ='c:\ php \ pear')错误导致我无法打开config.php文件。 –
如果内存正确地为我服务,我相信用正斜杠启动路径将引用Windows上文件系统的根目录。所以'include'/ _include/config.php''会引用'C:\ _include \ config.php'。我可以想到一个可以避免修改任何代码的解决方案就是创建一个[junction](https://msdn.microsoft.com/en-us/library/windows/desktop/aa365006(v = vs.85))。 aspx)从'C:\ _ include'移动到'_include'目录实际存在的位置(假设'_include'是在所有站点共享的单个目录)。 – Gondrup
在PHP 5.6和PHP 7中会发生什么变化?随着PHP 5.6它仍然有效,但升级到7它不再有效。 –
使用getcwd()函数。这总是返回当前调用(未包含)文件的目录路径(exp。C:\ xampp \ htdocs)。相对于您可以编辑包括:
include getcwd() . "\include\config.php"; /* C:\xampp\htdocs\include\config.php */
了解命名空间,因为这是处理这个 –
使用的最佳方法'回声GETCWD();'打印当前的工作目录。这是路径相对于的目录。确保配置文件存在 – Atan