正则表达式的文件路径

时间:2013-03-24 19:15:00

标签: php regex validation

我正在尝试验证php中上传文件的路径,必须使用正则表达式验证,而不是使用本机函数验证。

我得到的路径是:

C:\xampp\tmp\php33DB.tmp

因此,当我使用/^[a-zA-Z0-9\-\_:\\]*\Z/测试此路径时返回false。(我认为这是因为路径具有反斜杠\

有一种方法可以使用正则表达式验证在PHP上传的文件的Linux和Windows服务器的路径吗?

2 个答案:

答案 0 :(得分:3)

$text = 'C:\xampp\tmp\php33DB.tmp';
preg_match("#^[a-zA-Z0-9_\\\\:.-]+#",$text,$out);
print_r($out);

输出:

Array ( [0] => C:\xampp\tmp\php33DB.tmp )

但是,这个文件是由PHP上传创建的临时文件,我认为不需要验证它,因为它是由服务器而不是客户端创建的,你可以只检查上传文件的mime类型,如果是,则检查is_uploaded_file()文件由HTTP Post上传。

答案 1 :(得分:0)

我建议使用此功能:file_exists

所以在你的代码中你可以做到:

if (file_exists($tmpFile)) {
    // ... do stuff
}