【微信微信打开】微信(weixin)大转盘抽奖页面、数据库以及抽奖算法(PHP源码)

更新时间:2019-05-06    来源:微信    手机版     字体:

【www.bbyears.com--微信】

在做微信的过程中用到了微信抽奖,看了其他的作者都只是吧微信抽奖的页面共享出来了。我现在把转盘抽奖程序和微信抽奖页面都共享出来,有需要的自己把两者组合一下即可。

微信(weixin)大转盘抽奖

部份源码:配置文件

 代码如下 return array (
  "DB_TYPE" => "mysql",
  "DB_HOST" => "127.0.0.1",
  "DB_NAME" => "ites",
  "DB_USER" => "root",
  "DB_PWD" => "111111",
  "DB_PORT" => 3306,
  "DB_PREFIX" => "it_",
  "APP_DEBUG" => 1,
  "SHOW_ERROR_MSG" => 1,
  "SHOW_PAGE_TRACE" => 1,
  "DATA_CACHE_TYPE" => "Redis",
  "REDIS_HOST" => "127.0.0.1",
  "REDIS_PORT" => 6379,
  "DATA_CACHE_TIME" => 3600,
  "URL_CASE_INSENSITIVE" => true,
  "TMPL_STRIP_SPACE" => false,
  "URL_HTML_SUFFIX" => "",
  "SITE_NAME" => "11111",
  "SITE_URL" => "http://www.111cn.net/",
  "WECHAT_TOKEN" => "你的",
  "WECHAT_APPID" => "你的",
  "WECHAT_APPSECRET" => "你的",
  "DATA_AUTH_KEY" => "abcdddd",
);
?>

commond.php文件

 代码如下

function isMobile($mobile) {
 return preg_match("/^(?:13d|14d|15d|18[0123456789])-?d{5}(d{3}|*{3})$/", $mobile);
}

function isEmail($email) {
 return strlen($email) > 6 && preg_match("/^[w-.]+@[w-.]+(.w+)+$/", $email);
}

/**
 * 发送HTTP请求方法,目前只支持CURL发送请求
 * @param  string $url    请求URL
 * @param  array  $params 请求参数
 * @param  string $method 请求方法GET/POST
 * @return array  $data   响应数据
 */
function http($url, $params, $method = "GET", $header = array(), $multi = false){
 $opts = array(
   CURLOPT_TIMEOUT        => 30,
   CURLOPT_RETURNTRANSFER => 1,
   CURLOPT_SSL_VERIFYPEER => false,
   CURLOPT_SSL_VERIFYHOST => false,
   CURLOPT_HTTPHEADER     => $header
 );

 /* 根据请求类型设置特定参数 */
 switch(strtoupper($method)){
  case "GET":
   $opts[CURLOPT_URL] = $url . "?" . http_build_query($params);
   break;
  case "POST":
   //判断是否传输文件
   //$params = $multi ? $params : http_build_query($params);
   $opts[CURLOPT_URL] = $url;
   $opts[CURLOPT_POST] = 1;
   $opts[CURLOPT_POSTFIELDS] = $params;
   break;
  default:
   throw new Exception("不支持的请求方式!");
 }

 /* 初始化并执行curl请求 */
 $ch = curl_init();
 curl_setopt_array($ch, $opts);
 $data  = curl_exec($ch);
 $error = curl_error($ch);
 curl_close($ch);
 if($error) throw new Exception("请求发生错误:" . $error);
 return  $data;
}

/**
 * 不转义中文字符和/的 json 编码方法
 * @param array $arr 待编码数组
 * @return string
 */
function jsencode($arr) {
 $str = str_replace ( "\/", "/", json_encode ( $arr ) );
 $search = "#\u([0-9a-f]+)#ie";
 
 if (strpos ( strtoupper(PHP_OS), "WIN" ) === false) {
  $replace = "iconv("UCS-2BE", "UTF-8", pack("H4", "\1"))";//LINUX
 } else {
  $replace = "iconv("UCS-2", "UTF-8", pack("H4", "\1"))";//WINDOWS
 }
 
 return preg_replace ( $search, $replace, $str );
}

// 数据保存到文件
function data2file($filename, $arr=""){
 if(is_array($arr)){
  $con = var_export($arr,true);
  $con = "";
 } else{
  $con = $arr;
  $con = "";
 }
 write_file($filename, $con);
}

/**
 * 系统加密方法
 * @param string $data 要加密的字符串
 * @param string $key  加密密钥
 * @param int $expire  过期时间 单位 秒
 * @return string
 * @author winky
 */
function encrypt($data, $key = "", $expire = 0) {
    $key  = md5(empty($key) ? C("DATA_AUTH_KEY") : $key);
    $data = base64_encode($data);
    $x    = 0;
    $len  = strlen($data);
    $l    = strlen($key);
    $char = "";

    for ($i = 0; $i < $len; $i++) {
        if ($x == $l) $x = 0;
        $char .= substr($key, $x, 1);
        $x++;
    }

    $str = sprintf("%010d", $expire ? $expire + time():0);

    for ($i = 0; $i < $len; $i++) {
        $str .= chr(ord(substr($data, $i, 1)) + (ord(substr($char, $i, 1)))%256);
    }
    return str_replace(array("+","/","="),array("-","_",""),base64_encode($str));
}

/**
 * 系统解密方法
 * @param  string $data 要解密的字符串 (必须是encrypt方法加密的字符串)
 * @param  string $key  加密密钥
 * @return string
 * @author winky
 */
function decrypt($data, $key = ""){
    $key    = md5(empty($key) ? C("DATA_AUTH_KEY") : $key);
    $data   = str_replace(array("-","_"),array("+","/"),$data);
    $mod4   = strlen($data) % 4;
    if ($mod4) {
       $data .= substr("====", $mod4);
    }
    $data   = base64_decode($data);
    $expire = substr($data,0,10);
    $data   = substr($data,10);

    if($expire > 0 && $expire < time()) {
        return "";
    }
    $x      = 0;
    $len    = strlen($data);
    $l      = strlen($key);
    $char   = $str = "";

    for ($i = 0; $i < $len; $i++) {
        if ($x == $l) $x = 0;
        $char .= substr($key, $x, 1);
        $x++;
    }

    for ($i = 0; $i < $len; $i++) {
        if (ord(substr($data, $i, 1))             $str .= chr((ord(substr($data, $i, 1)) + 256) - ord(substr($char, $i, 1)));
        }else{
            $str .= chr(ord(substr($data, $i, 1)) - ord(substr($char, $i, 1)));
        }
    }
    return base64_decode($str);
}

function getTaskStatusStr($status = 0,$type = "apply" , $company = ""){
 if ($type == "comment") return "尚未作出评价";
 switch ($status) {
  case 0:
   return $type == "apply" ? "已发出任务申请" : $company."对你发出了任务邀请";
  break;
  case 1:
   return $type == "apply" ? "企业已通过申请" : "已同意企业的邀请";
  break;  
  case 2:
   return $type == "apply" ? "企业已忽略你的申请" : "你已经忽略企业的邀请";
  break;
  case 3:
   return $type == "apply" ? "你已完成该任务" : "该任务已经完成";
  break;  
  default:
   return "未知的状态";
  break;
 }
}


function getArea($cache = true){
 $area = S ( "S_Area" );
 if (empty ( $area ) || ! $cache) {
  // 缓存不存在,或者参数读取缓存。
  $areaModel = D("Area");
  $area = $areaModel -> where ("status = 3")->order ( "sort,itemid" )->getField("itemid,title,pid,arrparentid,child");
  //把市的省拚出来
  foreach ($area as $k=>$v){
   //如果是顶级
   if ($v["pid"]==0){
    $areaArr[$v["itemid"]]["itemid"] = $v["itemid"];
    $areaArr[$v["itemid"]]["title"] = $v["title"];
    $areaArr[$v["itemid"]]["pid"] = $v["pid"];
    $areaArr[$v["itemid"]]["arrparentid"] = $v["arrparentid"];
    $areaArr[$v["itemid"]]["child"] = $v["child"];
    //上级
    $areaArr[$v["itemid"]]["upitemid"] = $v["itemid"];
    $areaArr[$v["itemid"]]["uptitle"] = $v["title"];
   }
   //查出上级的名称和ID
   else {
    $areaArr[$v["itemid"]]["itemid"] = $v["itemid"];
    $areaArr[$v["itemid"]]["title"] = $v["title"];
    $areaArr[$v["itemid"]]["pid"] = $v["pid"];
    $areaArr[$v["itemid"]]["arrparentid"] = $v["arrparentid"];
    $areaArr[$v["itemid"]]["child"] = $v["child"];
    //上级
    $areaArr[$v["itemid"]]["upitemid"] = $area[$v["pid"]]["itemid"];
    $areaArr[$v["itemid"]]["uptitle"] = $area[$v["pid"]]["title"];
   }
  }
  $area = $areaArr;
  S ( "S_Area" , $area );
 }
 return $area;
}

?>

源码下载地址

http://file.111cn.net/upload/2014/3/wx.rar

 

本文来源:http://www.bbyears.com/shoujikaifa/49958.html

热门标签

更多>>

本类排行