file_exists在XAMPP上返回false

时间:2015-06-24 20:14:19

标签: php xampp

我在widows 7机器上安装了XAMPP,如果我执行:file_exists("ss.txt")我得到了真(ss.txt is in my docroot e:\www\)

如果我将ss.txt移动到e:\ www \ var并调用file_exists("/var/ss.txt")我会收到错误,但file_exists("var/ss.txt")会返回true - 为什么?

我无法更改查看("/var/ss.txt")的位置,因为这是来自数据库的条目,并且有一个运行Ubuntu的生产服务器使用相同的数据。

2 个答案:

答案 0 :(得分:0)

/var/ss.txt对应于从驱动器根目录开始的路径,而var/ss.txt是从执行脚本开始的路径(在您的情况下为e:\www\)。

您可以通过在点.之前调整从db获得的路径,以指示路径从脚本执行的位置开始。

$path = '/var/ss.txt';
$relativePath = '.' . $path; // equivalent to "./var/ss.txt"
file_exists($relativePath);

您还可以从路径的开头修剪任何/

$path = '/var/ss.txt';
$relativePath = ltrim($path, '/'); // equivalent to "var/ss.txt"
file_exists($relativePath);

ltrim documentation

答案 1 :(得分:0)

您已经说过,您无法更改脚本中的路径,因为它是从数据库中提取的。只需在开发计算机上设置目录结构,就像在服务器上设置目录结构一样。 (即不要创建目录' e:\ www \ var',创建目录' e:\ var'。)

至于其他人所说的原因,' /var/ss.txt'是绝对路径,' var / ss.txt'是一条相对的道路。