parse($xml); $xml_parser->destruct(); return $data; } /** * 获得请求端的xml */ public static function post_request_xml($url, $params=array()) { $ch = curl_init(); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); //curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/x-www-form-urlencoded")); curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: text/html")); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_TIMEOUT, 3); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params)); $result = file_get_contents('php://input'); $httpinfo= curl_getinfo($ch); curl_close($ch); //print_r($httpinfo); $info = "{$httpinfo['http_code']}|$url|$result"; Log::save_run_log($info,'curl'); if($httpinfo['http_code'] == 200){ return $result; } else { return false; } } /** * 获得请求端的ip地址 */ public static function get_client_ip() { global $_SERVER; if (isset($_SERVER["HTTP_X_FORWARDED_FOR"])) { $ip = $_SERVER["HTTP_X_FORWARDED_FOR"]; } elseif (isset($_SERVER["HTTP_CLIENT_IP"])) { $ip = $_SERVER["HTTP_CLIENT_IP"]; } else { $ip = $_SERVER["REMOTE_ADDR"]; } return $ip; } /** * 接口999操作失败 * forexample: response_999(__FILE__,__LINE__,__FUNCTION__,"SQL"); */ public static function response_999($file,$line,$function,$err_type){ $parameters = get_parameters(); $file = strstr($file,"u."); $log = "|response:999|file:$file|line:$line|function:$function|err_type:$err_type|$parameters"; Log::save_run_log($log,"run"); echo "-999"; exit; } /** * 接口返回结果函数 */ public static function response($result){ echo $result; exit; } /** * 取得精确时间值 */ public static function microtime_float(){ list($usec, $sec) = explode(" ", microtime()); return ((float)$usec + (float)$sec); } /** * 取得请求参数,并组成字符串 * 格式为 {parameter:value|parameter:value|parameter:value|parameter:value……………………} */ public static function get_parameters() { global $_GET,$_POST; $parameters = ""; if($_GET){ foreach($_GET as $key => $val){ if($key == 'sign') continue; else $parameters .= "$key:$val|"; } } if($_POST){ foreach($_POST as $key => $val){ if($key == 'sign') continue; else $parameters .= "$key:$val|"; } } if(strlen($parameters) > 1 ) $parameters = substr($parameters,0,-1); return "{".$parameters."}"; } public static function get_browser_language() { if(isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])){ $accept_lang = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']); return $accept_lang[0]; } else { return false; } } public static function filterInput(&$info){ if(empty($info)) return false; if(is_array($info)){ foreach ($info as $key=>$val){ $info[$key] = addslashes($val); } } else { $info = addslashes($info); } } public static function matchSex($total_friend,$sex,$friends){ $ran = rand(0,$total_friend-1); if($sex == 2) return $ran; if ($sex == 1 and $friends[$ran]['sex']=='male'){ return $ran; } else if ($sex == 0 and $friends[$ran]['sex']=='female'){ return $ran; } else { $ran = matchSex($total_friend,$sex,$friends); } } public static function get_GetParameters() { global $_GET; $parameters = ""; if($_GET){ foreach($_GET as $key => $val){ $parameters .= "$key:$val|"; } } if(strlen($parameters) > 1 ) $parameters = substr($parameters,0,-1); return $parameters; } public static function getRandomStr( $length = 8 ) { // character dictionary $chars = array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l','m', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y','z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L','M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y','Z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'); // get keys $max = count($chars)-1; for ($i = 0; $i < $length; $i++){ $keys[] = mt_rand(0,$max); } $password = ''; for($i = 0; $i < $length; $i++) { $password .= $chars[$keys[$i]]; } return $password; } public static function getRandomNum( $length = 6 ) { // character dictionary $chars = array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9'); // get keys $max = count($chars)-1; for ($i = 0; $i < $length; $i++){ $keys[] = mt_rand(0,$max); } $password = ''; for($i = 0; $i < $length; $i++) { $password .= $chars[$keys[$i]]; } return $password; } public static function getUrlHost($url){ $host_end_pos = strpos($url,'/',7); if(!empty($host_end_pos)){ $hostUrl = substr($url,0,$host_end_pos); } else{ $hostUrl = $url; } return $hostUrl; } public static function handlePageRefer($logFile_pre){ // Save refer log $refer = $_SERVER['HTTP_REFERER']; if(!empty($refer) && strpos($refer,'oasgames.com') === FALSE){ $refer = commonFunc::getUrlHost($refer); Log::save_run_log($refer,$logFile_pre); // set cookie setcookie("oas_lp_refer",$refer,0,'/','.oasgames.com'); } } public static function sqlInjectCheck($input){ // $sqlKeyWords = array( // 'select','insert','update', // 'delete','drop','create', // 'truncate','database', // 'table','column','add', // 'load_file','grant','privileges', // ' ', // ); // // $input = strtolower($input); // // foreach ($sqlKeyWords as $kw){ // if(strpos($input, $kw) !== FALSE){ // return true; // } // } return false; } // Desc: Method to make request at server side // Para: // @$default_ip can be set with the ip of the url host // // Implemented by Huchunmei at 2013.2.27 public static function curlMakeRequest($url, $params,$timeout=3,$isPostMethod=true,$default_ip='') { $curl = curl_init(); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($curl, CURLOPT_HTTPHEADER, array("Content-Type: application/x-www-form-urlencoded")); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_HTTPPROXYTUNNEL, 0); curl_setopt($curl, CURLOPT_POST, $isPostMethod); curl_setopt($curl, CURLOPT_TIMEOUT, $timeout); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($params)); curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true); if(!empty($default_ip)) curl_setopt($curl, CURLOPT_PROXY,$default_ip); $output = curl_exec($curl); $httpinfo = curl_getinfo($curl); curl_close($curl); if($httpinfo['http_code'] == 200){ return $output; } else { return false; } } public static function curlRequest($url,$postData='',$timeout=3){ $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1); curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); curl_setopt($curl, CURLOPT_AUTOREFERER, 1); if(!empty($postData)){ curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_POSTFIELDS, $postData); } curl_setopt($curl, CURLOPT_TIMEOUT, $timeout); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); $resultData = curl_exec($curl); $httpInfo = curl_getinfo($curl); if (curl_errno($curl)) { curl_close($curl); return false; }else{ curl_close($curl); return $resultData; } } // Class end } ?>