$length,'name'=>$name); } // url检查 function check_url($url){ $array = get_headers($url,true); if (preg_match('/404/', $array[0])) { return false; } elseif (preg_match('/403/', $array[0])) { return false; } else { return true; } } /** * 获取网络url文件内容,加入ua,以解决防采集的站 */ function curl_get_contents($url){ $ch = curl_init(); $timeout = 4; $user_agent = "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; WOW64; Trident/4.0; SLCC1)"; curl_setopt ($ch, CURLOPT_URL, $url); curl_setopt ($ch, CURLOPT_HEADER, 0); curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($ch, CURLOPT_USERAGENT, $user_agent); curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout); $file_contents = curl_exec($ch); curl_close($ch); return $file_contents; } // 返回refer URL 地址 function refer_url(){ return isset($_SERVER["HTTP_REFERER"]) ? $_SERVER["HTTP_REFERER"] : ''; } // 返回当前页面的 URL 地址 function this_url(){ $s_url = isset($_SERVER["HTTPS"]) && $_SERVER["HTTPS"] ? 'https' : 'http'; $s_url .= '://'; return $s_url . $_SERVER["SERVER_NAME"] . $_SERVER["REQUEST_URI"]; } function select_var($array){ if (!is_array($array)) return -1; ksort($array); $chosen = -1; foreach ($array as $k => $v) { if (isset($v)) { $chosen = $v; break; } } return $chosen; } function stripslashes_deep($value){ $value = is_array($value) ? array_map('stripslashes_deep', $value) : (isset($value) ? stripslashes($value) : null); return $value; } /** * GET/POST数据统一入口 * 将GET和POST的数据进行过滤,去掉非法字符以及hacker code,返回一个数组 * 注意如果GET和POST有相同的Key,POST优先 * * @return array $_GET和$_POST数据过滤处理后的值 */ function parse_incoming(){ global $_GET, $_POST,$_COOKIE; $_COOKIE = stripslashes_deep($_COOKIE); $_GET = stripslashes_deep($_GET); $_POST = stripslashes_deep($_POST); $return = array(); $return = array_merge($_GET,$_POST); $remote = array_get($return,0); $remote = explode('/',trim($remote[0],'/')); $return['URLremote'] = $remote; return $return; } function url2absolute($index_url, $preg_url){ if (preg_match('/[a-zA-Z]*\:\/\//', $preg_url)) return $preg_url; preg_match('/([a-zA-Z]*\:\/\/.*)\//', $index_url, $match); $index_url_temp = $match[1]; foreach(explode('/', $preg_url) as $key => $var) { if ($key == 0 && $var == '') { preg_match('/([a-zA-Z]*\:\/\/[^\/]*)\//', $index_url, $match); $index_url_temp = $match[1] . $preg_url; break; } if ($var == '..') { preg_match('/([a-zA-Z]*\:\/\/.*)\//', $index_url_temp, $match); $index_url_temp = $match[1]; } elseif ($var != '.') $index_url_temp .= '/' . $var; } return $index_url_temp; } // 将字符串转换成URL的编码,gbk的和utf8的 $to="gbk" 或"utf8" function urlcode($str, $to){ if ($to == "gbk") { $result = RawUrlEncode($str); //gbk字符(主要是中文)转换为url %BA%EC形式 } else { $key = mb_convert_encoding($str, "utf-8", "gbk"); //对于百度utf8中文url $result = urlencode($key); } return $result; } // 输出js function exec_js($js){ echo "\n"; } // 禁止缓存 function no_cache(){ header("Pragma:no-cache\r\n"); header("Cache-Control:no-cache\r\n"); header("Expires:0\r\n"); } // 生成javascript转向 function go_url($url, $msg = ''){ header("Content-type: text/html; charset=utf-8\r\n"); echo "\n"; exit; } /** * 消息框。eg * msg("falied","/",10); * msg("ok"); */ function show_msg($message, $url = '#', $time = 3, $isgo = 1) { $goto = "content='$time;url=$url'"; if ($isgo != "1") { $goto = ""; } //是否自动跳转 echo<<
提示信息
$message
$time 秒后自动跳转,如不想等待可 点击这里
END; exit; } function send_http_status($i_status, $s_message = ''){ $a_status = array( // Informational 1xx 100 => 'Continue', 101 => 'Switching Protocols', // Success 2xx 200 => 'OK', 201 => 'Created', 202 => 'Accepted', 203 => 'Non-Authoritative Information', 204 => 'No Content', 205 => 'Reset Content', 206 => 'Partial Content', // Redirection 3xx 300 => 'Multiple Choices', 301 => 'Moved Permanently', 302 => 'Found', // 1.1 303 => 'See Other', 304 => 'Not Modified', 305 => 'Use Proxy', // 306 is deprecated but reserved 307 => 'Temporary Redirect', // Client Error 4xx 400 => 'Bad Request', 401 => 'Unauthorized', 402 => 'Payment Required', 403 => 'Forbidden', 404 => 'Not Found', 405 => 'Method Not Allowed', 406 => 'Not Acceptable', 407 => 'Proxy Authentication Required', 408 => 'Request Timeout', 409 => 'Conflict', 410 => 'Gone', 411 => 'Length Required', 412 => 'Precondition Failed', 413 => 'Request Entity Too Large', 414 => 'Request-URI Too Long', 415 => 'Unsupported Media Type', 416 => 'Requested Range Not Satisfiable', 417 => 'Expectation Failed', // Server Error 5xx 500 => 'Internal Server Error', 501 => 'Not Implemented', 502 => 'Bad Gateway', 503 => 'Service Unavailable', 504 => 'Gateway Timeout', 505 => 'HTTP Version Not Supported', 509 => 'Bandwidth Limit Exceeded' ); if (array_key_exists($i_status, $a_status)) { header('HTTP/1.1 ' . $i_status . ' ' . $a_status[$i_status]); } if ($s_message) { echo $s_message; exit(); } } // 获取操作系统信息 function get_os (){ $agent = $_SERVER['HTTP_USER_AGENT']; $os = false; if (eregi('win', $agent) && strpos($agent, '95')) { $os = 'Windows 95'; } else if (eregi('win 9x', $agent) && strpos($agent, '4.90')) { $os = 'Windows ME'; } else if (eregi('win', $agent) && ereg('98', $agent)) { $os = 'Windows 98'; } else if (eregi('win', $agent) && eregi('nt 5.1', $agent)) { $os = 'Windows XP'; } else if (eregi('win', $agent) && eregi('nt 5', $agent)) { $os = 'Windows 2000'; } else if (eregi('win', $agent) && eregi('nt', $agent)) { $os = 'Windows NT'; } else if (eregi('win', $agent) && ereg('32', $agent)) { $os = 'Windows 32'; } else if (eregi('linux', $agent)) { $os = 'Linux'; } else if (eregi('unix', $agent)) { $os = 'Unix'; } else if (eregi('sun', $agent) && eregi('os', $agent)) { $os = 'SunOS'; } else if (eregi('ibm', $agent) && eregi('os', $agent)) { $os = 'IBM OS/2'; } else if (eregi('Mac', $agent) && eregi('PC', $agent)) { $os = 'Macintosh'; } else if (eregi('PowerPC', $agent)) { $os = 'PowerPC'; } else if (eregi('AIX', $agent)) { $os = 'AIX'; } else if (eregi('HPUX', $agent)) { $os = 'HPUX'; } else if (eregi('NetBSD', $agent)) { $os = 'NetBSD'; } else if (eregi('BSD', $agent)) { $os = 'BSD'; } else if (ereg('OSF1', $agent)) { $os = 'OSF1'; } else if (ereg('IRIX', $agent)) { $os = 'IRIX'; } else if (eregi('FreeBSD', $agent)) { $os = 'FreeBSD'; } else if (eregi('teleport', $agent)) { $os = 'teleport'; } else if (eregi('flashget', $agent)) { $os = 'flashget'; } else if (eregi('webzip', $agent)) { $os = 'webzip'; } else if (eregi('offline', $agent)) { $os = 'offline'; } else { $os = 'Unknown'; } return $os; } //根据扩展名获取mime function get_file_mime($ext){ $mimetypes = array( "323" => "text/h323", "acx" => "application/internet-property-stream", "ai" => "application/postscript", "aif" => "audio/x-aiff", "aifc" => "audio/x-aiff", "aiff" => "audio/x-aiff", "asf" => "video/x-ms-asf", "asr" => "video/x-ms-asf", "asx" => "video/x-ms-asf", "au" => "audio/basic", "avi" => "video/x-msvideo", "axs" => "application/olescript", "bas" => "text/plain", "bcpio" => "application/x-bcpio", "bin" => "application/octet-stream", "bmp" => "image/bmp", "c" => "text/plain", "cat" => "application/vnd.ms-pkiseccat", "cdf" => "application/x-cdf", "cer" => "application/x-x509-ca-cert", "class" => "application/octet-stream", "clp" => "application/x-msclip", "cmx" => "image/x-cmx", "cod" => "image/cis-cod", "cpio" => "application/x-cpio", "crd" => "application/x-mscardfile", "crl" => "application/pkix-crl", "crt" => "application/x-x509-ca-cert", "csh" => "application/x-csh", "css" => "text/css", "dcr" => "application/x-director", "der" => "application/x-x509-ca-cert", "dir" => "application/x-director", "dll" => "application/x-msdownload", "dms" => "application/octet-stream", "doc" => "application/msword", "dot" => "application/msword", "dvi" => "application/x-dvi", "dxr" => "application/x-director", "eps" => "application/postscript", "etx" => "text/x-setext", "evy" => "application/envoy", "exe" => "application/octet-stream", "fif" => "application/fractals", "flr" => "x-world/x-vrml", "gif" => "image/gif", "gtar" => "application/x-gtar", "gz" => "application/x-gzip", "h" => "text/plain", "hdf" => "application/x-hdf", "hlp" => "application/winhlp", "hqx" => "application/mac-binhex40", "hta" => "application/hta", "htc" => "text/x-component", "htm" => "text/html", "html" => "text/html", "htt" => "text/webviewhtml", "ico" => "image/x-icon", "ief" => "image/ief", "iii" => "application/x-iphone", "ins" => "application/x-internet-signup", "isp" => "application/x-internet-signup", "jfif" => "image/pipeg", "jpe" => "image/jpeg", "jpeg" => "image/jpeg", "jpg" => "image/jpeg", "js" => "application/x-javascript", "latex" => "application/x-latex", "lha" => "application/octet-stream", "lsf" => "video/x-la-asf", "lsx" => "video/x-la-asf", "lzh" => "application/octet-stream", "m13" => "application/x-msmediaview", "m14" => "application/x-msmediaview", "m3u" => "audio/x-mpegurl", "man" => "application/x-troff-man", "mdb" => "application/x-msaccess", "me" => "application/x-troff-me", "mht" => "message/rfc822", "mhtml" => "message/rfc822", "mid" => "audio/mid", "mny" => "application/x-msmoney", "mov" => "video/quicktime", "movie" => "video/x-sgi-movie", "mp2" => "video/mpeg", "mp3" => "audio/mpeg", "mp4" => "video/mpeg", "mpa" => "video/mpeg", "mpe" => "video/mpeg", "mpeg" => "video/mpeg", "mpg" => "video/mpeg", "mpp" => "application/vnd.ms-project", "mpv2" => "video/mpeg", "ms" => "application/x-troff-ms", "mvb" => "application/x-msmediaview", "nws" => "message/rfc822", "oda" => "application/oda", "p10" => "application/pkcs10", "p12" => "application/x-pkcs12", "p7b" => "application/x-pkcs7-certificates", "p7c" => "application/x-pkcs7-mime", "p7m" => "application/x-pkcs7-mime", "p7r" => "application/x-pkcs7-certreqresp", "p7s" => "application/x-pkcs7-signature", "pbm" => "image/x-portable-bitmap", "pdf" => "application/pdf", "pfx" => "application/x-pkcs12", "pgm" => "image/x-portable-graymap", "pko" => "application/ynd.ms-pkipko", "pma" => "application/x-perfmon", "pmc" => "application/x-perfmon", "pml" => "application/x-perfmon", "pmr" => "application/x-perfmon", "pmw" => "application/x-perfmon", "png" => "image/png", "pnm" => "image/x-portable-anymap", "pot," => "application/vnd.ms-powerpoint", "ppm" => "image/x-portable-pixmap", "pps" => "application/vnd.ms-powerpoint", "ppt" => "application/vnd.ms-powerpoint", "prf" => "application/pics-rules", "ps" => "application/postscript", "pub" => "application/x-mspublisher", "qt" => "video/quicktime", "ra" => "audio/x-pn-realaudio", "ram" => "audio/x-pn-realaudio", "ras" => "image/x-cmu-raster", "rgb" => "image/x-rgb", "rmi audio/mid" => "http://www.dreamdu.com", "roff" => "application/x-troff", "rtf" => "application/rtf", "rtx" => "text/richtext", "scd" => "application/x-msschedule", "sct" => "text/scriptlet", "setpay" => "application/set-payment-initiation", "setreg" => "application/set-registration-initiation", "sh" => "application/x-sh", "shar" => "application/x-shar", "sit" => "application/x-stuffit", "snd" => "audio/basic", "spc" => "application/x-pkcs7-certificates", "spl" => "application/futuresplash", "src" => "application/x-wais-source", "sst" => "application/vnd.ms-pkicertstore", "stl" => "application/vnd.ms-pkistl", "stm" => "text/html", "svg" => "image/svg+xml", "sv4cpio" => "application/x-sv4cpio", "sv4crc" => "application/x-sv4crc", "swf" => "application/x-shockwave-flash", "t" => "application/x-troff", "tar" => "application/x-tar", "tcl" => "application/x-tcl", "tex" => "application/x-tex", "texi" => "application/x-texinfo", "texinfo" => "application/x-texinfo", "tgz" => "application/x-compressed", "tif" => "image/tiff", "tiff" => "image/tiff", "tr" => "application/x-troff", "trm" => "application/x-msterminal", "tsv" => "text/tab-separated-values", "txt" => "text/plain", "uls" => "text/iuls", "ustar" => "application/x-ustar", "vcf" => "text/x-vcard", "vrml" => "x-world/x-vrml", "wav" => "audio/x-wav", "wcm" => "application/vnd.ms-works", "wdb" => "application/vnd.ms-works", "wks" => "application/vnd.ms-works", "wmf" => "application/x-msmetafile", "wps" => "application/vnd.ms-works", "wri" => "application/x-mswrite", "wrl" => "x-world/x-vrml", "wrz" => "x-world/x-vrml", "xaf" => "x-world/x-vrml", "xbm" => "image/x-xbitmap", "xla" => "application/vnd.ms-excel", "xlc" => "application/vnd.ms-excel", "xlm" => "application/vnd.ms-excel", "xls" => "application/vnd.ms-excel", "xlt" => "application/vnd.ms-excel", "xlw" => "application/vnd.ms-excel", "xof" => "x-world/x-vrml", "xpm" => "image/x-xpixmap", "xwd" => "image/x-xwindowdump", "z" => "application/x-compress", "zip" => "application/zip" ); //代码 或文本浏览器输出 $text = array('oexe','inc','inf','csv','log','asc','tsv'); $code = array("abap","abc","as","ada","adb","htgroups","htpasswd","conf","htaccess","htgroups", "htpasswd","asciidoc","asm","ahk","bat","cmd","c9search_results","cpp","c","cc","cxx","h","hh","hpp", "cirru","cr","clj","cljs","CBL","COB","coffee","cf","cson","Cakefile","cfm","cs","css","curly","d", "di","dart","diff","patch","Dockerfile","dot","dummy","dummy","e","ejs","ex","exs","elm","erl", "hrl","frt","fs","ldr","ftl","gcode","feature",".gitignore","glsl","frag","vert","go","groovy", "haml","hbs","handlebars","tpl","mustache","hs","hx","html","htm","xhtml","erb","rhtml","ini", "cfg","prefs","io","jack","jade","java","js","jsm","json","jq","jsp","jsx","jl","tex","latex", "ltx","bib","lean","hlean","less","liquid","lisp","ls","logic","lql","lsl","lua","lp","lucene", "Makefile","GNUmakefile","makefile","OCamlMakefile","make","md","markdown","mask","matlab", "mel","mc","mush","mysql","nix","m","mm","ml","mli","pas","p","pl","pm","pgsql","php","phtml", "ps1","praat","praatscript","psc","proc","plg","prolog","properties","proto","py","r","Rd", "Rhtml","rb","ru","gemspec","rake","Guardfile","Rakefile","Gemfile","rs","sass","scad","scala", "scm","rkt","scss","sh","bash",".bashrc","sjs","smarty","tpl","snippets","soy","space","sql", "styl","stylus","svg","tcl","tex","txt","textile","toml","twig","ts","typescript","str","vala", "vbs","vb","vm","v","vh","sv","svh","vhd","vhdl","xml","rdf","rss", "wsdl","xslt","atom","mathml","mml","xul","xbl","xaml","xq","yaml","yml","htm", "xib","storyboard","plist","csproj"); if (array_key_exists($ext,$mimetypes)){ return $mimetypes[$ext]; }else{ if(in_array($ext,$text) || in_array($ext,$code)){ return "text/plain"; } return 'application/octet-stream'; } }