我在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的生产服务器使用相同的数据。
答案 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);
答案 1 :(得分:0)
您已经说过,您无法更改脚本中的路径,因为它是从数据库中提取的。只需在开发计算机上设置目录结构,就像在服务器上设置目录结构一样。 (即不要创建目录' e:\ www \ var',创建目录' e:\ var'。)
至于其他人所说的原因,' /var/ss.txt'是绝对路径,' var / ss.txt'是一条相对的道路。