separator = "."; $this->extensions = array( "a" => "ada95", "ada" => "ada95", "adb" => "ada95", "ads" => "ada95", "asm" => "asm_x86", "asp" => "jscript|vb|vbdotnet", "awk" => "awk", "bas" => "vb|vbdotnet", "c" => "c", "cbl" => "cobol", "cls" => "vb|vbdotnet", "cob" => "cobol", "cpy" => "cobol", "cpp" => "cpp", "cs" => "csharp", "cxx" => "cpp", "dat" => "mumps", "dpr" => "delphi", "e" => "eiffel|euphoria", "ew" => "euphoria", "eu" => "euphoria", "ex" => "euphoria", "exw" => "euphoria", "exu" => "euphoria", "frm" => "vb|vbdotnet", "h" => "c", "hpp" => "cpp", "inc" => "turbopascal|vb|vbdotnet", "java" => "javaswing", "js" => "jscript|javascript", "lsp" => "lisp", "m" => "mumps", "pas" => "delphi|turbopascal", "php" => "php3", "php3" => "php3", "php4" => "php3", "pl" => "perl", "pm" => "perl", "py" => "python", "pyc" => "python", "rtn" => "mumps", "scm" => "scheme", "vb" => "vb|vbdotnet", "vbs" => "vb|vbdotnet|vbscript", "wsf" => "vbscript" ); $this->langfunctions = array( // ASCII // --- Languages "awk", "bash", "perl", "rc", "env", "cpp", "diff", "xdiff", "swf", "psfont", "lex", "lisp", "magic", "mime", // --- Markup "postscript", "rtf", "html", "xml", "sgml", // --- Generic tests "genericshell"); $this->binfunctions = array( // Binary // --- Images "gif", "jpeg", "png", "bmp", "tif" // --- Compressed ); } function detect_cpp() { return !(strpos($this->file, "//") === false); } function detect_awk() { if (preg_match("/^#!\s+\/bin\/nawk/", $this->file) || preg_match("/^#!\s+\/bin\/nawk/", $this->file) || preg_match("/^#!\s+\/usr\/bin\/nawk/", $this->file) || preg_match("/^#!\s+\/usr\/local\/bin\/nawk/", $this->file) || preg_match("/^#!\s+\/bin\/gawk/", $this->file) || preg_match("/^#!\s+\/usr\/bin\/gawk/", $this->file) || preg_match("/^#!\s+\/usr\/local\/bin\/gawk/", $this->file) || preg_match("/^#!\s+\/bin\/awk/", $this->file) || preg_match("/^#!\s+\/usr\/bin\/awk/", $this->file) || preg_match("/^BEGIN\s+/", $this->file)) return true; else return false; } function detect_perl() { if (preg_match("/^#!\s+\/bin\/perl/", $this->file) || preg_match("/^eval\s+\"exec\s+\/bin\/perl/", $this->file) || preg_match("/^#!\s+\/usr\/bin\/perl/", $this->file) || preg_match("/^eval\s+\"exec\s+\/usr\/bin\/perl/", $this->file) || preg_match("/^#!\s+\/usr\/local\/bin\/perl/", $this->file) || preg_match("/^eval\s+\"exec\s+\/usr\/local\/bin\/perl/", $this->file)) return true; else return false; } function detect_bash() { if (preg_match("/^#!\s+\/bin\/bash/", $this->file) || preg_match("/^#!\s+\/usr\/local\/bin\/bash/", $this->file)) return true; else return false; } function detect_rc() { if (preg_match("/^#!\s+\/bin\/rc/", $this->file)) return true; else return false; } function detect_env() { if (preg_match("/^#!\s*\/usr\/bin\/env/", $this->file)) return true; else return false; } function detect_genericshell() { if (preg_match("/^#!/", $this->file)) return true; else return false; } function detect_diff() { if (preg_match("/^diff\s+/", $this->file) || preg_match("/^\*\*\*\s+/", $this->file) || preg_match("/^Only\s+in\s+/", $this->file) || preg_match("/^Common\s+subdirectories:\s+/", $this->file)) return true; else return false; } function detect_xdiff() { if (preg_match("/^%XDZ/", $this->file)) return true; else return false; } function detect_swf() { if (preg_match("/^FWS/", $this->file)) return true; else return false; } function detect_psfont() { if (preg_match("/^(.*?)PS-AdobeFont-1\.0/", $this->file)) return true; else return false; } function detect_lex() { if (substr($this->file, 53, 10)=="yyprevious" || substr($this->file, 21, 17)=="generated by flex") return true; else return false; } function detect_lisp() { return !(strpos($this->file, ";;") === false); } function detect_magic() { return preg_match("/^#\s+Magic/", $this->file); } function detect_mime() { return preg_match("/^Content-Type:/", $this->file); } function detect_postscript() { return (substr($this->file, 0, 2)=="%!" || substr($this->file, 0, 3)==(string)(4)."%!"); } function detect_rtf() { return substr($this->file, 0, 5)=="{\\rtf"; } function detect_html() { if (preg_match("/\s*file) || preg_match("/\s*file) || preg_match("/\s*file) || preg_match("/\s*<html/", $this->file)) return true; else return false; } function detect_xml() { if (preg_match("/\s*<\?xml/", $this->file)) return true; else return false; } function detect_sgml() { if (preg_match("/\s*<!doctype/", $this->file) || preg_match("/\s*<!subdoc/", $this->file) || preg_match("/\s*<!--/", $this->file)) return true; else return false; } // --- Images function detect_gif() { return (substr($this->file, 0, 6) == "GIF89a"); } function detect_jpeg() { return !(strpos(substr($this->file, 0, 16), "JFIF") === false); } function detect_png() { $arr = unpack("C*", $this->file); if (sizeof($arr)<9) return false; return ($arr[1] == 0x89 && $arr[2] == 0x50 && $arr[3] == 0x4E && $arr[4] == 0x47 && $arr[5] == 0x0D && $arr[6] == 0x0A && $arr[7] == 0x1A && $arr[8] == 0x0A); } function detect_bmp() { return (substr($this->file, 0, 2) == "BM"); } function detect_tif() { return ((substr($this->file, 0, 2) == "MM") || (substr($this->file, 0, 2) == "II")); } } ?>