您好,欢迎访问一九零五行业门户网

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

目前最为流行的微信游戏了,就是抽奖活动,下面我看一站长整理了这款抽奖源码出来,下面我也转过来与各位朋友分享。
在做微信的过程中用到了微信抽奖,看了其他的作者都只是吧微信抽奖的页面共享出来了。我现在把转盘抽奖程序和微信抽奖页面都共享出来,有需要的自己把两者组合一下即可。
部份源码:配置文件
 代码如下 复制代码
'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文件
 代码如下 复制代码
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         if ($x == $l) $x = 0;
        $char .= substr($key, $x, 1);
        $x++;
    }
    $str = sprintf('%010d', $expire ? $expire + time():0);
    for ($i = 0; $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         return '';
    }
    $x      = 0;
    $len    = strlen($data);
    $l      = strlen($key);
    $char   = $str = '';
    for ($i = 0; $i         if ($x == $l) $x = 0;
        $char .= substr($key, $x, 1);
        $x++;
    }
    for ($i = 0; $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
其它类似信息

推荐信息