将文件路径与PHP、OS进行独立比较

将文件路径与PHP、OS进行独立比较,php,regex,preg-match,Php,Regex,Preg Match,用PHP比较两个文件路径的最佳方法是什么 现在,我正在尝试进行preg_匹配,因为windows DS会破坏正则表达式,所以通过str_replaceDIRECTORY_分隔符“/”,$path运行这两种模式 我建议您不要比较完整的文件路径,而只比较从网站根目录开始的相对路径 所以就这样做吧: $path = str_replace($_SERVER['DOCUMENT_ROOT'], "", $path); // this will cut your website root if (DIRE

用PHP比较两个文件路径的最佳方法是什么


现在,我正在尝试进行preg_匹配,因为windows DS会破坏正则表达式,所以通过str_replaceDIRECTORY_分隔符“/”,$path运行这两种模式

我建议您不要比较完整的文件路径,而只比较从网站根目录开始的相对路径

所以就这样做吧:

$path = str_replace($_SERVER['DOCUMENT_ROOT'], "", $path); // this will cut your website root
if (DIRECTORY_SEPARATOR != "/")
   $path = str_replace(DIRECTORY_SEPARATOR, '/', $path);   // replace non unix slashes
if (preg_match($yourpattern, $path))
{
    // do something...
}

看看这个函数的用法。啊,是的!我甚至没想到。。谢谢编辑:我想到一件事。。pathinfo不是只能处理实际文件吗?我不太确定。我假设它无论如何都会工作,因为它似乎不会从路径之外的文件中获取任何元数据。比较相对路径而不是绝对路径会有什么区别?很抱歉问一下..windows上的路径以驱动器号开始,例如:C:\inetpub\在unix系统上以斜杠目录开始,例如:/mnt/webroot,因此如果修剪web根目录的初始路径,则可以防止在不同平台上匹配路径时出现问题。这很有意义!谢谢。