js is_valid_filename验证文件名的函数
函数代码
functionis_valid_filename($name)
{
$parts=preg_split("/(\/|".preg_quote("\\").")/",$name);
if(preg_match("/[a-z]:/i",$parts[0])){
unset($parts[0]);
}
foreach($partsas$part)
{
print"part='$part'
";
if(preg_match("/[".preg_quote("^|?*<\":>","/")."\a\b\c\e\x\v\s]/",$part)||preg_match("/^(PRN|CON|AUX|CLOCK$|NUL|COMd|LPTd)$/im",
str_replace(".","\n",$part))){
returnfalse;
}
}
returntrue;
}
$bad=array_merge(array_map('chr',range(0,31)),array("<",">",":",'"',"/","\\","|","?","*"));
$result=str_replace($bad,"",$filename);
windows系统文件命名规则限制
https://msdn.microsoft.com/en-us/library/aa365247