现在我创建一个小型PHP应用程序,这里我有使用文件路径的问题,因为在Windows中使用此类型位置C:\Some\Location\index
但在Linux /www/app/index
中所以当我使用此{{1}定义路径时但是当应用程序在窗口机器中运行时,这个/
应该是个问题。
所以我想在这里定义DIRECTORY_SEPARATOR Windows和Linux平台。
答案 0 :(得分:45)
PHP接受\
和/
作为所有操作系统中的有效路径分隔符。所以只需在代码中使用/
答案 1 :(得分:17)
为方便起见,您可以编写一个更短的常量:
DEFINE('DS', DIRECTORY_SEPARATOR);
然后将您的路径写为:
$path = 'www'.DS.'app'.DS.'index';
或者我不明白你的问题?
答案 2 :(得分:6)
也许它已经在您的脚本中定义,尝试回显DIRECTORY_SEPARATOR,看看它是否有任何值
答案 3 :(得分:3)
PHP将'\'和'/'理解为路径分隔符,无论您使用何种系统。我更喜欢在我的所有代码中使用'/'(unix方式)。当你在一个Windows盒子上并且需要提供一个完全合格的Windows / DOS路径时,我将拥有这个简单的非破坏性功能
function dosPath($path){
return str_replace('/', '\\', $path);
}
示例:
$drive = 'C:';
$path = '/tmp/uploads';
echo dosPath($drive.$path);
echo dosPath($path);
答案 4 :(得分:0)
Windows在大多数情况下接受正斜杠,因此您可以使用它们。你甚至可以使用混合物,它不会抱怨。
确保你的单元测试套件也可以在Linux上传递!
答案 5 :(得分:0)
尝试使用此窗口
defined ('DS') ? null : define('DS', DIRECTORY_SEPARATOR);
define( 'SITE_ROOT', DS . 'xampp' . DS .'htdocs' . DS .'gallery');