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