errcode) && $r->errcode >= 40001) { //Log::init(); AppLog::DEBUG($result); } if (intval($status["http_code"]) == 200) { return $result; } else { return false; } } /** * POST 请求 * @param string $url * @param array $param * @return string content */ public static function post($url, $param, $encode = true, $header = array()) { $curl = curl_init(); if (stripos($url,"https://")!==FALSE) { curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($curl, CURLOPT_SSLVERSION, 1); //CURL_SSLVERSION_TLSv1 } if (is_string($param)) { $strPOST = $param; } else { $aPOST = array(); foreach($param as $key=>$val) { if ($encode == false) { $aPOST[] = $key."=".$val; } else { $aPOST[] = $key."=".urlencode($val); } } $strPOST = join("&", $aPOST); } curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_POST, true); if (!empty($header)) { curl_setopt($curl, CURLOPT_HTTPHEADER, $header); } self::$postStr = $strPOST; curl_setopt($curl, CURLOPT_POSTFIELDS, $strPOST); $result = curl_exec($curl); $status = curl_getinfo($curl); curl_close($curl); if (intval($status["http_code"]) == 200) { return $result; } else { return false; } } /** * 上传文件 * @param $url * @param $filedata */ public static function upload($url, $filedata) { $curl = curl_init (); if (class_exists ( '\CURLFile' )) {//php5.5跟php5.6中的CURLOPT_SAFE_UPLOAD的默认值不同 curl_setopt ( $curl, CURLOPT_SAFE_UPLOAD, true ); } else { if (defined ( 'CURLOPT_SAFE_UPLOAD' )) { curl_setopt ( $curl, CURLOPT_SAFE_UPLOAD, false ); } } curl_setopt ( $curl, CURLOPT_URL, $url ); curl_setopt ( $curl, CURLOPT_SSL_VERIFYPEER, FALSE ); curl_setopt ( $curl, CURLOPT_SSL_VERIFYHOST, FALSE ); if (! empty ( $filedata )) { curl_setopt ( $curl, CURLOPT_POST, 1 ); curl_setopt ( $curl, CURLOPT_POSTFIELDS, $filedata ); } curl_setopt ( $curl, CURLOPT_RETURNTRANSFER, 1 ); $output = curl_exec ( $curl ); curl_close ( $curl ); return $output; } /** * 下载网络图片并缓存到指定本地路径 * @param $url 网络图片地址 * @param $cachePath 本地缓存路径 */ public static function download($url, $cachePath) { $curl = curl_init(); $fp = fopen($cachePath, 'wb'); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_FILE, $fp); curl_setopt($curl, CURLOPT_HEADER, 0); curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); //curl_setopt($hander,CURLOPT_RETURNTRANSFER,false);//以数据流的方式返回数据,当为false是直接显示出来 curl_setopt($curl,CURLOPT_TIMEOUT, 60); curl_exec($curl); curl_close($curl); fclose($fp); } /** * @param $url * @return array */ public static function getImageStream($url) { $curl = curl_init(); curl_setopt($curl, CURLOPT_HEADER, 0); curl_setopt($curl, CURLOPT_NOBODY, 0); //只取body头 if(stripos($url,"https://") !== FALSE){ curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE); } curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1 ); $result = curl_exec($curl); $status = curl_getinfo($curl); curl_close($curl); $imageAll = array_merge(array('header' => $status ), array('body' => $result )); return $imageAll; } /** * GET 请求 * @param string $url */ public static function http_get($url) { $oCurl = curl_init(); if(stripos($url,"https://")!==FALSE){ curl_setopt($oCurl, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($oCurl, CURLOPT_SSL_VERIFYHOST, FALSE); curl_setopt($oCurl, CURLOPT_SSLVERSION, 1); //CURL_SSLVERSION_TLSv1 } curl_setopt($oCurl, CURLOPT_URL, $url); curl_setopt($oCurl, CURLOPT_RETURNTRANSFER, 1 ); $sContent = curl_exec($oCurl); $aStatus = curl_getinfo($oCurl); curl_close($oCurl); if(intval($aStatus["http_code"])==200){ return $sContent; }else{ return false; } } // xml to array public static function xmlToArr($xml) { libxml_disable_entity_loader(true); $xmlString = simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA); $val = json_decode(json_encode($xmlString),true); return $val; } /** * POST 请求 * @param string $url * @param array $param * @return string content */ public static function post_material($url, $param,$encode=true,$header=array()) { $curl = curl_init(); if(stripos($url,"https://")!==FALSE){ curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($curl, CURLOPT_SSLVERSION, 1); //CURL_SSLVERSION_TLSv1 } if (is_string($param)) { $strPOST = $param; } else { $aPOST = array(); foreach($param as $key=>$val){ if(strpos($val, '@') === 0) { $filename = ltrim($val, '@'); $param[$key] = new \CURLFile($filename); } if($encode==false){ $aPOST[] = $key."=".$val; }else{ $aPOST[] = $key."=".urlencode($val); } } $strPOST = join("&", $aPOST); } curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1 ); curl_setopt($curl, CURLOPT_POST,true); if(!empty($header)){ curl_setopt($curl, CURLOPT_HTTPHEADER,$header); } self::$postStr = $strPOST; curl_setopt($curl, CURLOPT_POSTFIELDS, $param); $result = curl_exec($curl); $status = curl_getinfo($curl); curl_close($curl); if(intval($status["http_code"]) == 200){ return $result; }else{ return false; } } }