Разделите плохие символы имени файла Windows

Я нашел эту функцию, которая тестирует, является ли строка именем файла Windows и дружественной папкой:

function is_valid_filename($name) {
    $parts=preg_split("/(\/|".preg_quote("\\").")/",$name);
    if (preg_match("/[a-z]:/i",$parts[0])) {
       unset($parts[0]);
    }
    foreach ($parts as $part) {
        print "part = '$part'<br>";
       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))) {
          return false;
       }
    }
    return true;
 }

То, что я имел бы, является функцией, которая разделяет весь плохой материал от строки. Я пытался в основном заменить preg_match preg_replace, но никакой сигарой.

7
задан RBerteig 31 July 2010 в 23:06
поделиться