PHP封裝curl的調用介面及常用函數的介紹

來源:互聯網
上載者:User
今天為大家分享一篇PHP封裝curl的調用介面及常用函數詳解,具有很好的參考價值,希望對大家有所協助。一起過來看看吧

如下所示:

<?php/** * @desc 封裝curl的調用介面,post的請求方式 */function doCurlPostRequest($url, $requestString, $timeout = 5) { if($url == "" || $requestString == "" || $timeout <= 0){return false;} $con = curl_init((string)$url); curl_setopt($con, CURLOPT_HEADER, false); curl_setopt($con, CURLOPT_POSTFIELDS, $requestString); curl_setopt($con, CURLOPT_POST, true); curl_setopt($con, CURLOPT_RETURNTRANSFER,true); curl_setopt($con, CURLOPT_TIMEOUT, (int)$timeout);curl_setopt($con, CURLOPT_SSL_VERIFYPEER, false);curl_setopt($con, CURLOPT_SSL_VERIFYHOST, false); return curl_exec($con);}/** * @desc 封裝curl的調用介面,post的請求方式 */function doCurlPostsslRequest($url, $requestString,$pemfile, $timeout = 5) { if($url == "" || $requestString == "" || $timeout <= 0){return false;}echo $pemfile; $con = curl_init((string)$url); curl_setopt($con, CURLOPT_HEADER, false); curl_setopt($con, CURLOPT_POSTFIELDS, $requestString); curl_setopt($con, CURLOPT_POST, true); curl_setopt($con, CURLOPT_RETURNTRANSFER,true); curl_setopt($con, CURLOPT_TIMEOUT, (int)$timeout);curl_setopt($con, CURLOPT_SSL_VERIFYPEER, 1);curl_setopt($con, CURLOPT_SSL_VERIFYHOST, 2);//curl_setopt($ch, CURLOPT_SSLCERT, $pemfile); //curl_setopt($ch, CURLOPT_SSLCERTTYPE, 'PEM');curl_setopt($con, CURLOPT_CAINFO, $pemfile); return curl_exec($con);} /** * @desc 封裝curl的調用介面,post Json資料的請求方式 */function doCurlPostJsonReq($url, $requestString, $timeout = 25){if($url == "" || $requestString == "" || $timeout <= 0){return false;} $con = curl_init((string)$url); curl_setopt($con, CURLOPT_HEADER, false); curl_setopt($con, CURLOPT_POSTFIELDS, $requestString); curl_setopt($con, CURLOPT_POST, true); curl_setopt($con, CURLOPT_RETURNTRANSFER,true); curl_setopt($con, CURLOPT_TIMEOUT, (int)$timeout);curl_setopt($con, CURLOPT_HTTPHEADER, array('Content-Type: application/json','Content-Length: ' . strlen($data_string))); return curl_exec($con);}/** * @desc 封裝curl的調用介面,post form資料的請求方式 */function doCurlPostFormReq($url, $requestString, $timeout = 25){if($url == "" || $requestString == "" || $timeout <= 0){return false;} $con = curl_init((string)$url); curl_setopt($con, CURLOPT_HEADER, false); curl_setopt($con, CURLOPT_POSTFIELDS, $requestString); curl_setopt($con, CURLOPT_POST, true); curl_setopt($con, CURLOPT_RETURNTRANSFER,true); curl_setopt($con, CURLOPT_TIMEOUT, (int)$timeout);curl_setopt($con, CURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded')); return curl_exec($con);}/** * @desc 封裝curl的調用介面,get的請求方式 */function doCurlGetRequest($url, $data = array(), $timeout = 10) {if($url == "" || $timeout <= 0){return false;}if($data != array()) {$url = $url . '?' . http_build_query($data);}Log::write("發送URL[".$url."]");$con = curl_init((string)$url);curl_setopt($con, CURLOPT_HEADER, false);curl_setopt($con, CURLOPT_RETURNTRANSFER,true);curl_setopt($con, CURLOPT_TIMEOUT, (int)$timeout);curl_setopt($con, CURLOPT_SSL_VERIFYPEER, false);curl_setopt($con, CURLOPT_SSL_VERIFYHOST, false);return curl_exec($con);}/** *截取字串,中文無亂碼*/function msubstr($str, $start=0, $length=0,$suffix=false,$charset="utf-8"){ if(mb_strlen($str,"UTF8") >= $length){  $next_str = "…"; }else{  $next_str = ""; } if(function_exists("mb_substr")){  if($suffix)   // return mb_substr($str, $start, $length, $charset)."…";   return mb_substr($str, $start, $length, $charset).$next_str;  else   return mb_substr($str, $start, $length, $charset); }elseif(function_exists('iconv_substr')) {  if($suffix)   // return iconv_substr($str,$start,$length,$charset)."…";   return iconv_substr($str,$start,$length,$charset).$next_str;  else   return iconv_substr($str,$start,$length,$charset); } $re['utf-8'] = "/[x01-x7f]|[xc2-xdf][x80-xbf]|[xe0-xef][x80-xbf]{2}|[xf0-xff][x80-xbf]{3}/"; $re['gb2312'] = "/[x01-x7f]|[xb0-xf7][xa0-xfe]/"; $re['gbk'] = "/[x01-x7f]|[x81-xfe][x40-xfe]/"; $re['big5'] = "/[x01-x7f]|[x81-xfe]([x40-x7e]|xa1-xfe])/"; preg_match_all($re[$charset], $str, $match); $slice = join("",array_slice($match[0], $start, $length));  if($suffix) return $slice."…"; if(!$suffix) return $slice; return $slice;}/** *使用者名稱*隱藏 *$str = "如來神掌"; *echo cut_str($str, 1, 0).'**'.cut_str($str, 1, -1); *輸出:如**掌*/function cut_str($string, $sublen, $start = 0, $code = 'UTF-8'){ if($code == 'UTF-8') {  $pa = "/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|\xe0[\xa0-\xbf][\x80-\xbf]|[\xe1-\xef][\x80-\xbf][\x80-\xbf]|\xf0[\x90-\xbf][\x80-\xbf][\x80-\xbf]|[\xf1-\xf7][\x80-\xbf][\x80-\xbf][\x80-\xbf]/";  preg_match_all($pa, $string, $t_string);  if(count($t_string[0]) - $start > $sublen) return join('', array_slice($t_string[0], $start, $sublen));  return join('', array_slice($t_string[0], $start, $sublen)); } else {  $start = $start*2;  $sublen = $sublen*2;  $strlen = strlen($string);  $tmpstr = '';  for($i=0; $i< $strlen; $i++)  {   if($i>=$start && $i< ($start+$sublen))   {    if(ord(substr($string, $i, 1))>129)    {     $tmpstr.= substr($string, $i, 2);    }    else    {     $tmpstr.= substr($string, $i, 1);    }   }   if(ord(substr($string, $i, 1))>129) $i++;  }  //if(strlen($tmpstr)< $strlen ) $tmpstr.= "...";  return $tmpstr; }}/**解決json_encode轉換中文的問題,在php5.4下json_encode本身解決的這個問題*/function unescapedUnicode($match){return mb_convert_encoding(pack('H*', $match[1]), 'UTF-8', 'UCS-2BE');}/***截取手機號*demo:13112345678*return:131****5678*/function hidtel($phone){ $IsWhat = preg_match('/(0[0-9]{2,3}[-]?[2-9][0-9]{6,7}[-]?[0-9]?)/i',$phone); //固定電話 if($IsWhat == 1){  return preg_replace('/(0[0-9]{2,3}[-]?[2-9])[0-9]{3,4}([0-9]{3}[-]?[0-9]?)/i','$1****$2',$phone); }else{  return preg_replace('/(1[358]{1}[0-9])[0-9]{4}([0-9]{4})/i','$1****$2',$phone); }}//擷取IPfunction getIp(){if (isset($_SERVER)){if (isset($_SERVER["HTTP_X_FORWARDED_FOR"])){$realip = $_SERVER["HTTP_X_FORWARDED_FOR"];} else if (isset($_SERVER["HTTP_CLIENT_IP"])) {$realip = $_SERVER["HTTP_CLIENT_IP"];} else {$realip = $_SERVER["REMOTE_ADDR"];}} else {if (getenv("HTTP_X_FORWARDED_FOR")){$realip = getenv("HTTP_X_FORWARDED_FOR");} else if (getenv("HTTP_CLIENT_IP")) {$realip = getenv("HTTP_CLIENT_IP");} else {$realip = getenv("REMOTE_ADDR");}}return $realip;}//把漢字轉換為數字function getUnicodeFromOneUTF8($word){//擷取其字元的內部數組表示,所以本檔案應用utf-8編碼! //$word = iconv("gb2312", "utf-8", $word);if (is_array($word)) $arr = $word; else $arr = str_split($word); //此時,$arr應類似array(228, 189, 160) //定義一個Null 字元串儲存 $bin_str = ''; //轉成數字再轉成二進位字串,最後聯合起來。 foreach ($arr as $value) $bin_str .= decbin(ord($value)); //此時,$bin_str應類似111001001011110110100000//正則截取 $bin_str = preg_replace('/^.{4}(.{4}).{2}(.{6}).{2}(.{6})$/','$1$2$3', $bin_str);//此時, $bin_str應類似0100111101100000,如果是漢字"你"return bindec($bin_str); //返回類似20320, 漢字"你" //return dechex(bindec($bin_str)); //如想返回十六進位4f60,用這句

以上就是本文的全部內容,希望對大家的學習有所協助,更多相關內容請關注topic.alibabacloud.com!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.