常用函数--总结

<?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('&nbsp;','',$acontent);
        $acontent =str_replace('&mdash;','',$acontent);
        $acontent =str_replace('&ltp;&gt;','',$acontent);
        $acontent =str_replace('&lt;','',$acontent);
        $acontent =str_replace('p','',$acontent);
        $acontent =str_replace('&gt;','',$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('&nbsp;',"", $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