目前最为流行的微信游戏了,就是抽奖活动,下面我看一站长整理了这款抽奖源码出来,下面我也转过来与各位朋友分享。
在做微信的过程中用到了微信抽奖,看了其他的作者都只是吧微信抽奖的页面共享出来了。我现在把转盘抽奖程序和微信抽奖页面都共享出来,有需要的自己把两者组合一下即可。
部份源码:配置文件
代码如下 复制代码
'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