微信(weixin)大转盘抽奖页面、数据库以及抽奖算法(PHP源码)
在做微信的过程中用到了微信抽奖,看了其他的作者都只是吧微信抽奖的页面共享出来了。我现在把转盘抽奖程序和微信抽奖页面都共享出来,有需要的自己把两者组合一下即可。
部份源码:配置文件
代码如下 | 复制代码 |
<?php 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文件
代码如下 | 复制代码 |
<?php function isEmail($email) { /** /* 根据请求类型设置特定参数 */ /* 初始化并执行curl请求 */ /** // 数据保存到文件 /** for ($i = 0; $i < $len; $i++) { $str = sprintf('%010d', $expire ? $expire + time():0); for ($i = 0; $i < $len; $i++) { /** if($expire > 0 && $expire < time()) { for ($i = 0; $i < $len; $i++) { for ($i = 0; $i < $len; $i++) { function getTaskStatusStr($status = 0,$type = 'apply' , $company = ''){
?> |
源码下载地址
http://file.111cn.net/upload/2014/3/wx.rar
正则表达试是我们在开发验证时会常用到的一些规则,下面我整理了在我们用户数据提交时的一些常用的正则表达式,希望这些整理数据对你有帮助。
正则表达式一直以来是我比较头痛的东西,不过工作中是离不开正则表达式的,代码、vim编辑器、awk等Linux命令都广泛应用正则表达式。这是我收集并且测试过的PHP代码中常用的正则表达式,首先建立测试函数:
代码如下 | 复制代码 |
function regTest( $pattern, $str ) { |
1. 匹配中文字符
代码如下 | 复制代码 |
$pattern = "/[x{4e00}-x{9fa5}]/u"; |
关于汉字的匹配,网上很多给的都是“[u4e00-u9fa5]”,这个正则不一定完全正确。
2. 匹配tab缩进、空格和换行
代码如下 | 复制代码 |
$pattern = "/[x{4e00}-x{9fa5}]/u"; |
3. 匹配Email地址
代码如下 | 复制代码 |
$pattern = "[w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*]"; $str = '如有问题,请联系service@lenovo.com或者contact@ibm.com。'; regTest( $pattern, $str ); //依次输出结果 //int(1) //array(4) { [0]=> array(2) { [0]=> string(18) "service@lenovo.com" [1]=> string(15) "contact@ibm.com" } [1]=> array(2) { [0]=> string(0) "" [1]=> string(0) "" } [2]=> array(2) { [0]=> string(0) "" [1]=> string(0) "" } [3]=> array(2) { [0]=> string(0) "" [1]=> string(0) "" } } //string(41) "如有问题,请联系Test或者Test。" |
//使用Filter函数
filter_var($email, FILTER_VALIDATE_EMAIL);
我一般不自己写正则表达式去验证邮箱,使用PHP内置filter函数可以很方便的完成邮箱地址的验证。
4. 匹配国内手机号码和电话号码
代码如下 | 复制代码 |
//固定电话匹配 $pattern = "[d{3,4}-d{7,8}]"; $str = '联系电话010-12345678'; regTest( $pattern, $str ); //最简单的匹配手机号匹配 $pattern = "[1d{10}]"; $str = '联系电话15812345678'; regTest( $pattern, $str ); |
5. 匹配HTML中的图片地址
代码如下 | 复制代码 |
$pattern = '/<[img|IMG].*?src=['|"](.*?(?:[.gif|.jpg]))['|"].*?[/]?>/'; $str = '<img id="test_img" src="images/123.gif" alt="test" />'; regTest( $pattern, $str );
/** /** |
补充
表单验证匹配
验证账号,字母开头,允许 5-16 字节,允许字母数字下划线:^[a-zA-Z][a-zA-Z0-9_]{4,15}$
验证账号,不能为空,不能有空格,只能是英文字母:^S+[a-z A-Z]$
验证账号,不能有空格,不能非数字:^d+$
验证用户密码,以字母开头,长度在 6-18 之间:^[a-zA-Z]w{5,17}$
验证是否含有 ^%&',;=?$ 等字符:[^%&',;=?$x22]+
匹配Email地址:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*
匹配腾讯QQ号:[1-9][0-9]{4,}
匹配日期,只能是 2004-10-22 格式:^d{4}-d{1,2}-d{1,2}$
匹配国内电话号码:^d{3}-d{8}|d{4}-d{7,8}$
评注:匹配形式如 010-12345678 或 0571-12345678 或 0831-1234567
匹配中国邮政编码:^[1-9]d{5}(?!d)$
匹配身份证:d{14}(d{4}|(d{3}[xX])|d{1})
评注:中国的身份证为 15 位或 18 位
不能为空且二十字节以上:^[s|S]{20,}$
主要分享php中手机号、座机、邮箱、身份证(15或18位)、手机号截取(中间四位为*)的正则表达式,都是自己工作收集而来。如果有不对的地方。欢迎提出!代码如下 | 复制代码 |
//验证手机号 |
例子1
代码如下 | 复制代码 |
function change_num($num) |
例子2
1.支持天文数字,整数位理论上可以无限的长;
2.支持小数,对于货币,一般精确到小数后两位,可以设置小数位是否四舍五入;
3.支持自定义货币单位,有的系统要求大写是"圆",有的要求是"元",可以自定义;
4.支持整数以0结束并含有小数的数字自定义末尾补"零",比如有的系统要求1960.30这样的数字转大写之后是"壹仟玖佰陆拾元叁角",而有的系统则要求"壹仟玖佰陆拾元零叁角",这两种情况按"正确填写票据和结算凭证的基本规定"都是正确的,现在可已自定义。
代码如下 | 复制代码 |
<?php // 如果小数点后多于2位,不四舍五入就直接截,否则就处理 // 当number为0.001时,小数点后的金额为0元 // 定义 // 整数部分从右向左找 // 如果小数部分处理完之后是00,需要处理下 // 小数部分从左向右找 // 是否要在整数部分以0结尾的数字后附加0,有的系统有这要求 for($i = 0, $cnt = strlen($dec); $i < $cnt; $i++) echo "<pre>"; |
例子3
看上面的个人更喜欢下面这个
代码如下 | 复制代码 |
//把数字金额转换成中文大写数字的函数 $num=round($num,2); $i=0; while (1){ $p1=substr($c1,2*$n,2); $p2=substr($c2,2*$i,2); $i=$i+1; if($num==0){ //we chop out the useless characters to form the correct output if ($m=='零元' || $m=='零万' || $m=='零亿' || $m=='零零'){ if(substr($c,strlen($c)-2,2)=='零'){ return $c; |
给手机app作一个二维码的接口,要求支持iso,android,win8手机,找了第三个方工具phpqrcode。
1,下载地址
源码下载:https://github.com/t0k4rt/phpqrcode
2,加水印图片,片段代码
代码如下 | 复制代码 |
$logo = 'logo.png'; if(is_file($logo)) |
相关文章
- 操作类就是把一些常用的一系列的数据库或相关操作写在一个类中,这样调用时我们只要调用类文件,如果要执行相关操作就直接调用类文件中的方法函数就可以实现了,下面整理了...2016-11-25
- 本文给大家分享C#连接SQL数据库和查询数据功能的操作技巧,本文通过图文并茂的形式给大家介绍的非常详细,需要的朋友参考下吧...2021-05-17
- 这篇文章主要介绍了C#从数据库读取图片并保存的方法,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下...2021-01-16
- 作者:Sabine 【导读】本文介绍了C#的四种排序算法:冒泡排序、选择排序、插入排序和希尔排序 冒泡排序 using System; namespace BubbleSorter { public class Bubb...2020-06-25
- 这篇文章主要用实例讲解C#递归算法的概念以及用法,文中代码非常详细,帮助大家更好的参考和学习,感兴趣的朋友可以了解下...2020-06-25
- 这篇文章主要介绍了Intellij IDEA连接Navicat数据库的方法,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借价值,需要的朋友可以参考下...2021-03-25
- 在开发过程中,我们经常会将日期时间的毫秒数存放到数据库,但是它对应的时间看起来就十分不方便,我们可以使用一些函数将毫秒转换成date格式。 一、 在MySQL中,有内置的函数from_unixtime()来做相应的转换,使用如下: 复制...2014-05-31
- C#使用System.IO中的文件操作方法在Windows系统中处理本地文件相当顺手,这里我们还总结了在Oracle中保存文件的方法,嗯,接下来就来看看整理的C#操作本地文件及保存文件到数据库的基本方法总结...2020-06-25
- 通过内网连另外一台机器的mysql服务, 确发现速度N慢! 等了大约几十秒才等到提示输入密码。 但是ping mysql所在服务器却很快! 想到很久之前有过类似的经验, telnet等一些服务在连接请求的时候,会做一些反向域名解析(如果...2015-10-21
- 某些时候,例如为了搭建一个测试环境,或者克隆一个网站,需要复制一个已存在的mysql数据库。使用以下方法,可以非常简单地实现。假设已经存在的数据库名字叫db1,想要复制一份,命名为newdb。步骤如下:1. 首先创建新的数据库newd...2015-10-21
- mysqldump命令的用法1、导出所有库系统命令行mysqldump -uusername -ppassword --all-databases > all.sql 2、导入所有库mysql命令行mysql>source all.sql; 3、导出某些库系统命令行mysqldump -uusername -ppassword...2015-10-21
- 1005:创建表失败1006:创建数据库失败1007:数据库已存在,创建数据库失败1008:数据库不存在,删除数据库失败1009:不能删除数据库文件导致删除数据库失败1010:不能删除数据目录导致删除数据库失败1011:删除数据库...2013-09-23
- 这篇文章主要介绍了c#从数据库里取得数据并异步更新ui的方法,大家参考使用吧...2020-06-25
- yii2.0框架是PHP开发的一个比较高效率的框架,集合了作者的大量心血,下面通过用户为例给大家详解yii2使用中的一些基本的增删改查操作。 User::find()->all(); //返回所有用户数据; User::findOne($id); //返回 主键...2015-11-24
- 这篇文章主要介绍了springBoot 项目排除数据库启动方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-09-10
- 1.用phpmyadmin创建数据库和数据表 创建数据库的时候,请将“整理”设置为:“utf8_general_ci” 或执行语句: 复制代码 代码如下:CREATE DATABASE `dbname` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; 创...2015-10-21
- 这篇文章主要介绍了Linux 下使用shell脚本定时维护数据库,本文通过案例分析给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-07-11
- “主机,用户名,密码”得到连接、“数据库,sql,连接”得到结果,最后是结果的处理显示。当然,数据库连接是扩展库为我们完成的,我们能做的仅仅是处理结果而已。...2013-09-29
- 对数据加密分两种,一种是对数据库本身进行加密,另一种是对数据表中的数据进行加密,下面通过本文给大家介绍C#连接加密的Sqlite数据库的方法,感兴趣的朋友一起看看吧...2020-06-25
- 这篇文章主要介绍了Java连接数据库oracle中文乱码解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-05-16