<?php /** * @param $url * @param $data * @param $header * @return mixed */ function http_curl($url,$data,$header){ //初始化curl $ch = curl_init(); //参数设置 $res= curl_setopt ($ch, CURLOPT_URL,$url); curl_setopt($ch,CURLOPT_HTTPHEADER,$header); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt ($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS,$data); curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); $result = curl_exec ($ch); return $result; } function httpGet($url) { $curl = curl_init(); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_TIMEOUT, 500); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($curl, CURLOPT_URL, $url); $res = curl_exec($curl); curl_close($curl); return $res; } function aes128Encrypt($key, $data) { $padding = 16 - (strlen($data) % 16); $data .= str_repeat(chr($padding), $padding); $keySize = 16; $ivSize = 16; $rawKey = $key; $genKeyData = ''; do { $genKeyData = $genKeyData.md5( $genKeyData.$rawKey, true ); } while( strlen( $genKeyData ) < ($keySize + $ivSize) ); $generatedKey = substr( $genKeyData, 0, $keySize ); $generatedIV = substr( $genKeyData, $keySize, $ivSize ); return mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $generatedKey, $data, MCRYPT_MODE_CBC, $generatedIV); } function get_real_ip(){ $ip=false; if(!empty($_SERVER["HTTP_CLIENT_IP"])){ $ip = $_SERVER["HTTP_CLIENT_IP"]; } if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) { $ips = explode (", ", $_SERVER['HTTP_X_FORWARDED_FOR']); if ($ip) { array_unshift($ips, $ip); $ip = FALSE; } for ($i = 0; $i < count($ips); $i++) { if (!eregi ("^(10|172\.16|192\.168)\.", $ips[$i])) { $ip = $ips[$i]; break; } } } return ($ip ? $ip : $_SERVER['REMOTE_ADDR']); } //oss调用 function gmt_iso8601($time) { $dtStr = date("c", $time); $mydatetime = new DateTime($dtStr); $expiration = $mydatetime->format(DateTime::ISO8601); $pos = strpos($expiration, '+'); $expiration = substr($expiration, 0, $pos); return $expiration."Z"; } //图片压缩 function imgCompress($path,$filterDir=[],$level=50,$waterFlag=0,$width=null,$height=null){ $waterFlag = 0; if(is_dir($path)){ $dh = opendir($path);//打开目录 while(($dirname = readdir($dh))!= false){ //特定文件名跳过 if(!empty($filterDir)){ $tempDir = array_merge($filterDir,['.','..']); }else{ $tempDir = ['.','..']; } if(in_array($dirname,$tempDir)){//判断是否为.或..,默认都会有 continue; } $dirname = iconv("GB2312","UTF-8",$dirname); //中文跳过 if (preg_match("/[\x7f-\xff]/", $dirname)) { continue; } $fileSize = abs(filesize($path.'/'.$dirname)); if(is_dir($path.'/'.$dirname)){ imgCompress($path.'/'.$dirname,$filterDir,$level); }elseif($fileSize > 10240){ //10K跳过 $imgData = getimagesize($path.'/'.$dirname); if($imgData!==false && in_array($imgData[2],[1,3])){ //其中1 = GIF,2 = JPG,3 = PNG,4 = SWF,5 = PSD,6 = BMP,7 = TIFF(intel byte order),8 = TIFF(motorola byte order),9 = JPC,10 = JP2,11 = JPX,12 = JB2,13 = SWC,14 = IFF,15 = WBMP,16 = XBM//$extName = pathinfo($dirname, PATHINFO_EXTENSION); $imagick = new Imagick($path); $imagick->setFormat('jpg'); $imagick->setImageCompression(\Imagick::COMPRESSION_UNDEFINED); $imagick->setCompressionQuality(50); $imagick->enhanceImage(); $imagick->writeImage($path); }elseif ($imgData!==false && in_array($imgData[2],[2])){ $Imagick = new \Think\Image(2,$path); $Imagick->save($path,null,$level); } } } closedir($dh); }else{ $path = iconv("GB2312","UTF-8",$path); //echo $path."<br />"; //中文跳过 if (preg_match("/[\x7f-\xff]/", $path)) { //die('中文跳过'); die; } $imgData = getimagesize($path); if($imgData!==false && in_array($imgData[2],[2])){ $level = 60; } if($imgData!==false && in_array($imgData[2],[1])){ $imagick = new Imagick($path); $imagick->setFormat('gif'); $dest = new Imagick(); $color_transparent = new ImagickPixel("transparent"); //透明色 foreach($imagick as $img){ $page = $img->getImagePage(); $tmp = new Imagick(); $tmp->newImage($page['width'], $page['height'], $color_transparent, 'gif'); $tmp->compositeImage($img, Imagick::COMPOSITE_OVER, $page['x'], $page['y']); $tmp->thumbnailImage($page['width'], $page['height'], true); if($waterFlag){ $watermark = new Imagick(); $watermark->readImage($_SERVER['DOCUMENT_ROOT'].'/Uploads/water.png'); //原图宽高 $waterH = $page['height']*0.2; $waterW = $page['width']*0.2; $watermark = new Imagick(); $watermark->readImage($_SERVER['DOCUMENT_ROOT'].'/Uploads/water.png'); $waterWH = $watermark->getImageGeometry(); $waterH = $waterWH['height']*$waterW/$waterWH['width']; $watermark->resizeImage($waterW,$waterH,Imagick::FILTER_LANCZOS,1); $tmp->compositeImage($watermark, Imagick::COMPOSITE_OVER, $tmp->getImageWidth()-$waterW, $tmp->getImageHeight()-$waterH); } $dest->addImage($tmp); $dest->setImagePage($tmp->getImageWidth(), $tmp->getImageHeight(), 0, 0); $dest->setImageDelay($img->getImageDelay()); $dest->setImageDispose($img->getImageDispose()); } $dest->coalesceImages(); $dest->writeImages($path, true); }else{ $imagick = new Imagick($path); $imagick->setFormat('jpg'); $imagick->setImageCompression(\Imagick::COMPRESSION_UNDEFINED); $imagick->setCompressionQuality($level); if($width !==null && $height!==null){ $imagick->thumbnailImage($width, $height,true); } $imagick->enhanceImage(); //加水印 if($waterFlag == 1){ //原图宽高 $imgWH = $imagick->getImageGeometry(); $waterH = $imgWH['height']*0.2; $waterW = $imgWH['width']*0.2; $watermark = new Imagick(); $watermark->readImage($_SERVER['DOCUMENT_ROOT'].'/Uploads/water.png'); $waterWH = $watermark->getImageGeometry(); $waterH = $waterWH['height']*$waterW/$waterWH['width']; $watermark->resizeImage($waterW,$waterH,Imagick::FILTER_LANCZOS,1); $imagick->compositeImage($watermark, imagick::COMPOSITE_OVER, 0,$imgWH['height']-$waterH); $imagick->writeImage($path); } } } } //判断图片数据首尾str是否完整检测图片是否损坏 有局限 function check_img_by_source($source) { switch(bin2hex(substr($source,0,2))){ case 'ffd8' : return 'ffd9' === bin2hex(substr($source,-2)); //JPG case '8950' : return '6082' === bin2hex(substr($source,-2)); //PNG case '4749' : return '003b' === bin2hex(substr($source,-2)); default : return false; } } //利用载入图片资源的方式检测图片是否损坏 function loadImg($file_path){ $extend=pathinfo($file_path); switch($extend['extension']) { case "jpg": case "jpeg": case 'JPG': case 'JPEG': $im = imagecreatefromjpeg($file_path); break; case 'png': case 'PNG': $im = imagecreatefrompng($file_path); break; case 'gif': case 'GIF': $im = imagecreatefromgif($file_path); break; default: $im = false; } if(!$im){ return false; }else{ return true; } } /** * 导入excel文件 * @param string $file excel文件路径 * @return array excel文件内容数组 */ function import_excel($file){ // 判断文件是什么格式 $type = pathinfo($file); $type = strtolower($type["extension"]); $type=$type==='csv' ? $type : 'Excel5'; ini_set('max_execution_time', '0'); Vendor('PHPExcel'); // 判断使用哪种格式 $objReader = PHPExcel_IOFactory::createReader($type); $objPHPExcel = $objReader->load($file); $sheet = $objPHPExcel->getSheet(0); // 取得总行数 $highestRow = $sheet->getHighestRow(); // 取得总列数 $highestColumn = $sheet->getHighestColumn(); //循环读取excel文件,读取一条,插入一条 $data=array(); //从第一行开始读取数据 for($j=1;$j<=$highestRow;$j++){ //从A列读取数据 for($k='A';$k<=$highestColumn;$k++){ // 读取单元格 $data[$j][]=$objPHPExcel->getActiveSheet()->getCell("$k$j")->getValue(); } } return $data; } //导出Excel function exportexcel($data=array(),$title=array(),$filename='report'){ header("Content-type:application/octet-stream"); header("Accept-Ranges:bytes"); header("Content-type:application/vnd.ms-excel"); header("Content-Disposition:attachment;filename=".$filename.".xls"); header("Pragma: no-cache"); header("Expires: 0"); //导出xls 开始 if (!empty($title)){ foreach ($title as $k => $v) { $title[$k]=iconv("UTF-8","GB2312",$v); } $title= implode("\t", $title); echo "$title\n"; } if (!empty($data)){ foreach($data as $key=>$val){ foreach ($val as $ck => $cv) { $data[$key][$ck]=iconv("UTF-8", "GBK", $cv); } $data[$key]=implode("\t", $data[$key]); } echo implode("\n",$data); } } /* content 中的标签过滤 */ function tagsindex($acontent){ $acontent =strip_tags($acontent); // $acontent =mysql_escape_string($acontent); $acontent =htmlentities($acontent); $acontent =str_replace(' ','',$acontent); $acontent =str_replace('—','',$acontent); $acontent =str_replace('<p;>','',$acontent); $acontent =str_replace('<','',$acontent); $acontent =str_replace('p','',$acontent); $acontent =str_replace('>','',$acontent); $acontent =str_replace('strong','',$acontent); $acontent =str_replace('/','',$acontent); $acontent =str_replace('\r\n','',$acontent); $acontent =str_replace('&am;','',$acontent); $acontent =str_replace('gt;','',$acontent); $acontent =str_replace('bs;','',$acontent); $acontent =str_replace('lt;','',$acontent); $acontent =str_replace('n','',$acontent); $acontent =str_replace('&','',$acontent); $acontent =str_replace('re','',$acontent); $acontent =str_replace('am;','',$acontent); $acontent =str_replace('rdquo;','',$acontent); $acontent =trim($acontent); // var_dump($acontent); return $acontent; } /* 获取远程图片存储到本地 */ function GetImage($url,$filename) { if ($url == "" || !$filename):return false; endif; ob_start(); readfile($url); $img = ob_get_contents(); ob_end_clean(); $size = strlen($img); $fp2 = @fopen($filename, "a"); fwrite($fp2, $img); fclose($fp2); } //将本地图片转换成base64格式 function base64EncodeImage ($image_file) { $base64_image = ''; $image_info = getimagesize($image_file); $image_data = fread(fopen($image_file, 'r'), filesize($image_file)); $base64_image = 'data:' . $image_info['mime'] . ';base64,' . chunk_split(base64_encode($image_data)); return $base64_image; } /** * [GetIP description] * 获取客户端登录的IP */ function GetIP(){ if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown")) $ip = getenv("HTTP_CLIENT_IP"); else if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown")) $ip = getenv("HTTP_X_FORWARDED_FOR"); else if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown")) $ip = getenv("REMOTE_ADDR"); else if (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown")) $ip = $_SERVER['REMOTE_ADDR']; else $ip = "unknown"; return($ip); } //获取ip所在城市地区 function findCityByIp($ip){ $data = file_get_contents('http://ip.taobao.com/service/getIpInfo.php?ip='.$ip); return json_decode($data,$assoc=true); } function sp_password($pw,$authcode=''){ if(empty($authcode)){ $authcode=C("AUTHCODE"); } $result="###".md5(md5($authcode.$pw)); return $result; } /** * CMF密码加密方法 (X2.0.0以前的方法) * @param string $pw 要加密的字符串 * @return string */ function sp_password_old($pw){ $decor=md5(C('DB_PREFIX')); $mi=md5($pw); return substr($decor,0,12).$mi.substr($decor,-4,4); } /** * CMF密码比较方法,所有涉及密码比较的地方都用这个方法 * @param string $password 要比较的密码 * @param string $password_in_db 数据库保存的已经加密过的密码 * @return boolean 密码相同,返回true */ function sp_compare_password($password,$password_in_db){ if(strpos($password_in_db, "###")===0){ return sp_password($password); }else{ return sp_password_old($password); } } /** * 格式化显示时间,把时间戳转化为时间格式 * * @param integer $timestamp 时间戳 * @return false|string */ function displayTime($timestamp) { $result = ''; if(!is_numeric($timestamp)) { $result = ''; } else { $result = date('Y-m-d H:i:s', $timestamp); } return $result; } /** * 格式化显示评论时间 * * @param integer $timestamp 评论的时间戳 * @return bool|string */ function displayCommentTime($timestamp) { if(!is_numeric($timestamp)) { return false; } $timeNow = time(); $timeBetween = $timeNow - $timestamp; $result = ''; $dayTimeInSecond = 24 * 3600; $hourTimeInSecond = 3600; if($timeBetween > $dayTimeInSecond) { $days = floor($timeBetween / $dayTimeInSecond); $result = "{$days}天前"; } elseif ($timeBetween < $dayTimeInSecond && $timeBetween > $hourTimeInSecond) { $hours = floor($timeBetween / $hourTimeInSecond); $result = "{$hours}小时前"; } elseif ($timeBetween < $hourTimeInSecond && $timeBetween > 60) { $minutes = floor($timeBetween / 60); $result = "{$minutes}分钟前"; } else { $result = '刚刚'; } return $result; } /** * 获取当前访问的完整URL,包含参数 * @return string */ function getFullUrl() { $sys_protocal = isset($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] == '443' ? 'https://' : 'http://'; $php_self = $_SERVER['PHP_SELF'] ? $_SERVER['PHP_SELF'] : $_SERVER['SCRIPT_NAME']; $path_info = isset($_SERVER['PATH_INFO']) ? $_SERVER['PATH_INFO'] : ''; $relate_url = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : $php_self.(isset($_SERVER['QUERY_STRING']) ? '?'.$_SERVER['QUERY_STRING'] : $path_info); return $sys_protocal.(isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : '').$relate_url; } /** * 获取用户所使用的操作系统类型 * @return string */ function getOS() { $agent = strtolower($_SERVER['HTTP_USER_AGENT']); $platform = ''; if (strpos($agent, 'windows nt')) { $platform = 'Windows'; } elseif (strpos($agent, 'macintosh')) { $platform = 'Mac'; } elseif (strpos($agent, 'ipod')) { $platform = 'iPod'; } elseif (strpos($agent, 'ipad')) { $platform = 'iPad'; } elseif (strpos($agent, 'iphone')) { $platform = 'iPhone'; } elseif (strpos($agent, 'android')) { $platform = 'Android'; } elseif (strpos($agent, 'unix')) { $platform = 'Unix'; } elseif (strpos($agent, 'linux')) { $platform = 'Linux'; } else { $platform = '未知'; } return $platform; } //获得访客浏览器类型 function getBrowser(){ if(!empty($_SERVER['HTTP_USER_AGENT'])){ $br = $_SERVER['HTTP_USER_AGENT']; if (preg_match('/MSIE/i',$br)) { $br = 'MSIE'; }elseif (preg_match('/Firefox/i',$br)) { $br = 'Firefox'; }elseif (preg_match('/Chrome/i',$br)) { $br = 'Chrome'; }elseif (preg_match('/Safari/i',$br)) { $br = 'Safari'; }elseif (preg_match('/Opera/i',$br)) { $br = 'Opera'; }else { $br = 'Other'; } return $br; }else{return "获取浏览器信息失败!";} } function convert_html_to_swf($url = '') { if(!is_string($url) || empty($url)) return ; if(strpos($url, 'swf')) return $url; $str=substr($url,0,5); if ($str=='https') { preg_match_all('/https:\/\/(.*?)?\.(.*?)?\.com\/(.*)/', $url, $types); }else{ preg_match_all('/http:\/\/(.*?)?\.(.*?)?\.com\/(.*)/', $url, $types); } $type = $types[2][0]; switch ($type) { case 'youku' : preg_match_all('/http:\/\/v\.youku\.com\/v_show\/id_(.*)?\.html/', $url, $url_array); $swf = 'http://player.youku.com/player.php/sid/' . str_replace('/', '', $url_array[1][0]) . '/v.swf'; break; case 'tudou' : $method = substr($types[3][0], 0, 1); $method = $method == 'p' ? 'v' : $method; preg_match_all('/http:\/\/www.tudou\.com\/(.*)?\/(.*)?/', $url, $url_array); $str_arr = explode('/', $url_array[1][0]); $count = count($str_arr); if ($count == 1) { $id = explode('.', $url_array[2][0]); $id = $id[0]; } else if ($count == 2) { $id = $str_arr[1]; } else if ($count == 3) { $id = $str_arr[2]; } $swf = 'http://www.tudou.com/' . $method . '/' . $id . '/v.swf'; break; case 'qq' : $url_array = pathinfo($url); $swf = "http://static.video.qq.com/TPout.swf?vid={$url_array['filename']}&auto=0"; break; default : $swf = $url; break; } return $swf; } function convert_html_to_swfs($url = '') { if(!is_string($url) || empty($url)) return ; if(strpos($url, 'swf')) return $url; $str=substr($url,0,5); if ($str=='https') { preg_match_all('/https:\/\/(.*?)?\.(.*?)?\.com\/(.*)/', $url, $types); }else{ preg_match_all('/http:\/\/(.*?)?\.(.*?)?\.com\/(.*)/', $url, $types); } $type = $types[2][0]; switch ($type) { case 'youku' : // http://v.youku.com/v_show/id_XODUwODAxODYw.html $index=strrpos($url,'_'); $indexs=strrpos($url,'.'); $id=subString($url,$index+1,$indexs); break; } return $id; } //修改图片大小 function imgzip($src,$newwid,$newhei){ $imgInfo = getimagesize($src); $imgType = image_type_to_extension($imgInfo[2], false); $fun = "imagecreatefrom{$imgType}"; //声明图片 打开图片 在内存中 $image = $fun($src); //方便配置长度宽度、高度,设置框为变量wid,高度为hei $wid=$imgInfo[0]; $hei=$imgInfo[1]; //判断长度和宽度,以方便等比缩放,规格按照500, 320 if($wid>$hei){ $wid=$newwid; $hei=$newwid/($wid/$hei); }else { $wid = $newhei * ($wid / $hei); $hei = $newhei; } //在内存中建立一张图片 $images2 = imagecreatetruecolor($newwid,$newhei); imagecopyresampled($images2, $image, 0, 0, 0, 0, $wid,$hei, $imgInfo[0],$imgInfo[1]); //销毁原始图片 imagedestroy($image); //直接输出图片文件 // header("Content-type: ".$imgInfo['mime']); // imagejpeg($images2); //保存图片 到新文件 imagejpeg($images2,$src, 100); //10代码输出图片的质量 0-100 100质量最高 //销毁 imagedestroy($images2); } //写入配置文件 function writeArr($c, $filename) { $settingstr="<?php \n return array(\n'URL_ROUTE_RULES' =>array(\n"; foreach($c as $key=>$v){ $settingstr.= "\t'".$key."'=>'".$v."',\n"; } $settingstr.="),\n);\n?>\n"; $handle = fopen($filename, 'w') or die('Cannot open file: '.$my_file); fwrite($handle, $settingstr); fclose($handle); //return file_put_contents($filename,$settingstr); } /* * 换算时间戳到几小时前 */ function newgetTimes($time) { $tim=time()-$time; if (0<$tim && $tim<3600){ $tims=ceil($tim/60).'分钟前'; }elseif (3600<=$tim && $tim<3600*24){ $tims=ceil($tim/3600).'小时前'; }elseif (3600*24<=$tim && $tim<3600*24*7){ $tims=ceil($tim/(3600*24)).'天前'; }elseif (3600*24*7<=$tim && $tim<3600*24*14) { $tims='7天前'; }elseif (3600*24*14<$tim){ $tims=date('Y-m-d H:i',$time); } return $tims; } //递归删除文件件 function deldir($path){ $dh = opendir($path); if ($dh) { while(($d = readdir($dh)) !== false){ if($d == '.' || $d == '..'){//如果为.或.. continue; } $tmp = $path.'/'.$d; if(!is_dir($tmp)){//如果为文件 @unlink($tmp); }else{//如果为目录 deldir($tmp); } } closedir($dh); rmdir($path); } return 1; } function getMonth() { $tmp_date=date("Ym"); $tmp_year=substr($tmp_date,0,4); //切割出月份 $tmp_mon =substr($tmp_date,4,2); $str=mktime(0,0,0,$tmp_mon-1,1,$tmp_year); return date('n',$str); } //添加文字 视频 话题的文章首行缩进以及段落 function indent($content,$type='') { $content =str_replace(' ',"", $content); $str = str_replace('<p>','<p style="text-indent: 2em;">',$content); if ($type!=1) { $str = htmlspecialchars_decode($str); $str = preg_replace("/<a[^>]*>(.*?)<\/a>/is", "$1", $str); } $str = str_replace('<p style="text-indent:2em;">','<p style="text-indent: 2em;margin-bottom: 15px">',$str); $str = str_replace('<pstyle="text-indent:2em;">','<p style="text-indent: 2em;margin-bottom: 15px">',$str); $str = str_replace('<p style="text-indent: 2em;">','<p style="text-indent: 2em;margin-bottom: 15px">',$str); return $str; } function my_sort($arrays,$sort_key,$sort_order=SORT_ASC,$sort_type=SORT_NUMERIC ){ if(is_array($arrays)){ foreach ($arrays as $array){ if(is_array($array)){ $key_arrays[] = $array[$sort_key]; }else{ return false; } } }else{ return false; } array_multisort($key_arrays,$sort_order,$sort_type,$arrays); return $arrays; } /**PHP 获取今日、昨日、本周、上周、本月的等等常用的起始时间戳和结束时间戳的时间处理类 * 返回今日开始和结束的时间戳 * * @return array */ function today() { return [ mktime(0, 0, 0, date('m'), date('d'), date('Y')), mktime(23, 59, 59, date('m'), date('d'), date('Y')) ]; } /** * 返回昨日开始和结束的时间戳 * * @return array */ function yesterday() { $yesterday = date('d') - 1; return [ mktime(0, 0, 0, date('m'), $yesterday, date('Y')), mktime(23, 59, 59, date('m'), $yesterday, date('Y')) ]; } /** * 获取指定日期段内每一天的日期 如 2018-01-01 到2018-07-22 之前,之间每一天的日期 * @param Date $startdate 开始日期 * @param Date $enddate 结束日期 * @return Array */ function getDateFromRange($startdate, $enddate){ $stimestamp = strtotime($startdate); $etimestamp = strtotime($enddate); // 计算日期段内有多少天 $days = ($etimestamp-$stimestamp)/86400+1; // 保存每天日期 $date = array(); for($i=0; $i<$days; $i++){ $date[] = date('Y-m-d', $stimestamp+(86400*$i)); } return $date; } function api_notice_increment($url, $data){ $ch = curl_init(); $header = "Accept-Charset: utf-8"; curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); curl_setopt($ch, CURLOPT_HTTPHEADER, $header); curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)'); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_AUTOREFERER, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $tmpInfo = curl_exec($ch); // var_dump($tmpInfo); // exit; if (curl_errno($ch)) { return false; }else{ // var_dump($tmpInfo); return $tmpInfo; } } // 实现数字格式化,数字每三位加逗号的功能函数 function num_format($num){ if(!is_numeric($num)){ return false; } $num = explode('.',$num);//把整数和小数分开 $rl = $num[1];//小数部分的值 $j = strlen($num[0]) % 3;//整数有多少位 $sl = substr($num[0], 0, $j);//前面不满三位的数取出来 $sr = substr($num[0], $j);//后面的满三位的数取出来 $i = 0; while($i <= strlen($sr)){ $rvalue = $rvalue.','.substr($sr, $i, 3);//三位三位取出再合并,按逗号隔开 $i = $i + 3; } $rvalue = $sl.$rvalue; $rvalue = substr($rvalue,0,strlen($rvalue)-1);//去掉最后一个逗号 $rvalue = explode(',',$rvalue);//分解成数组 if($rvalue[0]==0){ array_shift($rvalue);//如果第一个元素为0,删除第一个元素 } $rv = $rvalue[0];//前面不满三位的数 for($i = 1; $i < count($rvalue); $i++){ $rv = $rv.','.$rvalue[$i]; } if(!empty($rl)){ $rvalue = $rv.'.'.$rl;//小数不为空,整数和小数合并 }else{ $rvalue = $rv;//小数为空,只有整数 } return $rvalue; } //二维数组根据某个元素去重 //$arr->传入数组 $key->判断的key值 function array_unset_tt($arr,$key) { //建立一个目标数组 $res = array(); foreach ($arr as $value) { //查看有没有重复项 if (isset($res[$value[$key]])) { //有:销毁 unset($value[$key]); } else { $res[$value[$key]] = $value; } } foreach($res as $k=>$v){ $data[] = $v; } return $data; } //获取字母数字的随机组合(调用getRandomString(8);传入字符串长度即可) function getRandomString($len, $chars=null) { if (is_null($chars)) { $chars = "abcdefghijklmnpqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ123456789"; } mt_srand(10000000*(double)microtime()); for ($i = 0, $str = '', $lc = strlen($chars)-1; $i < $len; $i++) { $str .= $chars[mt_rand(0, $lc)]; } return $str; } /** * 只保留字符串首尾字符,隐藏中间用*代替(两个字符时只显示第一个) * @param [string] $user_name 字符串 * @param [int] $head 左侧保留位数 * @param [int] $foot 右侧保留位数 * @return string 格式化后的姓名 */ function substr_cut($user_name,$head,$foot){ $strlen = mb_strlen($user_name, 'utf-8'); $firstStr = mb_substr($user_name, 0, $head, 'utf-8'); $lastStr = mb_substr($user_name, -$foot, $foot, 'utf-8'); return $strlen == 2 ? $firstStr . str_repeat('*', mb_strlen($user_name, 'utf-8') - 1) : $firstStr . str_repeat("*", $strlen - ($head+$foot)) . $lastStr; }
常用函数--总结
猜你喜欢
转载自blog.csdn.net/stand_forever/article/details/84326490
今日推荐
周排行