在Windows和Linux上获取绝对URL路径

时间:2013-11-18 20:18:31

标签: php linux windows

我包含一个名为includes / db.php的文件,而这个文件又需要connection_details.php

我遇到的问题是我必须使用以下行读取db.php的内容。

$dbSettingsFile = realpath( dirname( __FILE__ ) )."\connection-details.txt";
$lines = file($dbSettingsFile);//file in to an array

但是,如果我已经从一个类似的文件包含db.php文件。 /subfolder/file.php

require('../includes/db.php');

但是这总是可以在windows上运行但是我说得对,因为$ dbSettingsFile变量中的反斜杠它在linux中不起作用? 我必须非常具体,因为如果您删除了realpath并运行了file.php,它将无法获取正确的路径。

1 个答案:

答案 0 :(得分:1)

您应该始终使用绝对文件名,因为您无法确定搜索相对路径的基本目录。

使用

require( __DIR__ . '/../includes/db.php' );

可以肯定。

斜杠字符'/'将在Windows和Linux中用作目录分隔符。 注意 - 在Windows文件名中,“db.php”和“DB.php”是相同的文件,但不在Linux中。