file_exists returns 假 XAMPP
file_exists returns false on XAMPP
我在 widows 7 机器上安装了 XAMPP 如果我执行:file_exists("ss.txt")
我得到 true (ss.txt is in my docroot e:\www\)
如果我将 ss.txt 移动到 e:\www\var 并调用 file_exists("/var/ss.txt")
我得到 false 但 file_exists("var/ss.txt")
returns true - 为什么?
我无法更改查找位置 ("/var/ss.txt")
,因为这是数据库中的一个条目,并且有一个生产服务器 运行 Ubuntu 使用相同的数据。
/var/ss.txt
对应于从驱动器根目录开始的路径,而 var/ss.txt
是从执行脚本的位置开始的路径(在您的情况下为 e:\www\
)。
您可以调整从数据库获取的路径,方法是在它前面加上一个点 .
以指示路径从执行脚本的位置开始。
$path = '/var/ss.txt';
$relativePath = '.' . $path; // equivalent to "./var/ss.txt"
file_exists($relativePath);
您还可以 trim 任何 /
从您的路径开始:
$path = '/var/ss.txt';
$relativePath = ltrim($path, '/'); // equivalent to "var/ss.txt"
file_exists($relativePath);
您说过您不能更改脚本中的路径,因为它是从数据库中提取的。只需在您的开发机器上设置目录结构,就像在您的服务器上设置一样。 (即不要创建目录 'e:\www\var',创建目录 'e:\var'。)
至于为什么,正如其他人所说,'/var/ss.txt'是绝对路径,而'var/ss.txt'是相对路径。
我在 widows 7 机器上安装了 XAMPP 如果我执行:file_exists("ss.txt")
我得到 true (ss.txt is in my docroot e:\www\)
如果我将 ss.txt 移动到 e:\www\var 并调用 file_exists("/var/ss.txt")
我得到 false 但 file_exists("var/ss.txt")
returns true - 为什么?
我无法更改查找位置 ("/var/ss.txt")
,因为这是数据库中的一个条目,并且有一个生产服务器 运行 Ubuntu 使用相同的数据。
/var/ss.txt
对应于从驱动器根目录开始的路径,而 var/ss.txt
是从执行脚本的位置开始的路径(在您的情况下为 e:\www\
)。
您可以调整从数据库获取的路径,方法是在它前面加上一个点 .
以指示路径从执行脚本的位置开始。
$path = '/var/ss.txt';
$relativePath = '.' . $path; // equivalent to "./var/ss.txt"
file_exists($relativePath);
您还可以 trim 任何 /
从您的路径开始:
$path = '/var/ss.txt';
$relativePath = ltrim($path, '/'); // equivalent to "var/ss.txt"
file_exists($relativePath);
您说过您不能更改脚本中的路径,因为它是从数据库中提取的。只需在您的开发机器上设置目录结构,就像在您的服务器上设置一样。 (即不要创建目录 'e:\www\var',创建目录 'e:\var'。)
至于为什么,正如其他人所说,'/var/ss.txt'是绝对路径,而'var/ss.txt'是相对路径。