PHP生成唯一的促销/优惠/折扣码(附源码)


Posted in PHP onDecember 28, 2012

每一个电子商务网站,现在有一种或多种类型的优惠/折扣/优惠券系统,给大家分享一下如何在PHP生成唯一的促销/折扣码。主要是实现一个优惠码系统,可用于跟踪用户来自某些特定的来源,例如有些主机促销的时候链接到别的页面会有优惠码生成,还有更多的促销代码等。因此,今天将讨论这样一个优惠码的实现过程

考虑的需求
代码应该很容易记住,因此保持短的长度是一个好主意,使用户可以很容易地记住它
没有特殊字符!它应该是字母数字组合,因为它会永远是为用户更容易记住
长度推广/折扣代码的正确。没有一个标准的长度,因为它取决于你想生成的长度,例如,如果你想生成1000代码的代码,那么你需要在至少4个字符代码。促销/优惠码长度通常为4到8个字符,但它取决于您的要求。
那好吧,让我们开始吧!让我们来看看代码,然后我会详细解释。它很容易

<?php 
/** 
* @param int $no_of_codes//定义一个int类型的参数 用来确定生成多少个优惠码 
* @param array $exclude_codes_array//定义一个exclude_codes_array类型的数组 
* @param int $code_length //定义一个code_length的参数来确定优惠码的长度 
* @return array//返回数组 
*/ 
function generate_promotion_code($no_of_codes,$exclude_codes_array='',$code_length = 4) 
{ 
$characters = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; 
$promotion_codes = array();//这个数组用来接收生成的优惠码 
for($j = 0 ; $j < $no_of_codes; $j++) 
{ 
$code = ""; 
for ($i = 0; $i < $code_length; $i++) 
{ 
$code .= $characters[mt_rand(0, strlen($characters)-1)]; 
} 
//如果生成的4位随机数不再我们定义的$promotion_codes函数里面 
if(!in_array($code,$promotion_codes)) 
{ 
if(is_array($exclude_codes_array))// 
{ 
if(!in_array($code,$exclude_codes_array))//排除已经使用的优惠码 
{ 
$promotion_codes[$j] = $code;将生成的新优惠码赋值给promotion_codes数组 
} 
else 
{ 
$j--; 
} 
} 
else 
{ 
$promotion_codes[$j] = $code;//将优惠码赋值给数组 
} 
} 
else 
{ 
$j--; 
} 
} 
return $promotion_codes; 
} 
echo '<h1>Promotion / Discount Codes</h1>'; 
echo '<pre>'; 
print_r(generate_promotion_code(50,'',4)); 
echo '</pre>'; 
?>

该代码由三个参数组成,
第一个参数是你要生成优惠码的个数(在这里是生成50个)。第二个参数exclude array,确保在当前列表中的生成唯一优惠码,所以如果你已经数据库中有一些未使用的代码,你可以把它传递给exclude。最后一个参数是优惠码的的长度。这个函数将返回规定长度的优惠码 这里是4位的优惠码。

这里我已经使用数字和大写字母组合,赋值给$characters的字符串,你可以使用小写字母或任何其他的字母组合试用。此功能的作用是生成唯一的优惠码。这个是PHP版本的,下一次给一个NET版本的,希望能帮助大家
下载地址

PHP 相关文章推荐
基于文本的访客签到簿
Oct 09 PHP
PHP通过session id 实现session共享和登录验证的代码
Jun 03 PHP
深入PHP nl2br()格式化输出的详解
Jun 05 PHP
PHP操作MongoDB GridFS 存储文件的详解
Jun 20 PHP
php安装xdebug/php安装pear/phpunit详解步骤(图)
Dec 22 PHP
PHP.ini中配置屏蔽错误信息显示和保存错误日志的例子
May 12 PHP
php中常见的sql攻击正则表达式汇总
Nov 06 PHP
PHP实现抓取Google IP并自动修改hosts文件
Feb 12 PHP
php自定义函数实现汉字转换utf8编码的方法
Sep 29 PHP
PHP实现文件上传下载实例
Oct 18 PHP
php判断数组是否为空的实例方法
May 10 PHP
PHP 实现base64编码文件上传出现问题详解
Sep 01 PHP
PHP中函数rand和mt_rand的区别比较
Dec 26 #PHP
php中unlink()、mkdir()、rmdir()等方法的使用介绍
Dec 21 #PHP
php和javascript之间变量的传递实现代码
Dec 19 #PHP
ajax php传递和接收变量实现思路及代码
Dec 19 #PHP
PHP编码转换函数 自动转换字符集支持数组转换
Dec 16 #PHP
PHP获取http请求的头信息实现步骤
Dec 16 #PHP
php获取通过http协议post提交过来xml数据及解析xml
Dec 16 #PHP
You might like
PHP 截取字符串 分别适合GB2312和UTF8编码情况
2009/02/12 PHP
PHP防止图片盗用(盗链)的方法小结
2016/11/11 PHP
详解PHP处理字符串类似indexof的方法函数
2017/06/11 PHP
php更新cookie内容的详细方法
2019/09/30 PHP
实现png图片和png背景透明(支持多浏览器)的方法
2009/09/08 Javascript
Javascript 多浏览器兼容总结(实战经验)
2013/10/30 Javascript
浏览器窗口大小变化时使用resize事件对框架不起作用的解决方法
2014/05/11 Javascript
JavaScript中使用Math.floor()方法对数字取整
2015/06/15 Javascript
JavaScript实现广告弹窗效果
2016/08/09 Javascript
JavaScript 数组的深度复制解析
2016/11/02 Javascript
从零学习node.js之文件操作(三)
2017/02/21 Javascript
ES6教程之for循环和Map,Set用法分析
2017/04/10 Javascript
原生JS与jQuery编写简单选项卡
2017/10/30 jQuery
vue 多入口文件搭建 vue多页面搭建的实例讲解
2018/03/12 Javascript
使用JS代码实现俄罗斯方块游戏
2018/08/03 Javascript
js中null与空字符串&quot;&quot;的区别讲解
2019/01/17 Javascript
vue.js基于v-for实现批量渲染 Json数组对象列表数据示例
2019/08/03 Javascript
浅谈vue中document.getElementById()拿到的是原值的问题
2020/07/26 Javascript
Python学生成绩管理系统简洁版
2020/04/05 Python
python使用Flask操作mysql实现登录功能
2018/05/14 Python
python3 读取Excel表格中的数据
2018/10/16 Python
python机器人运动范围问题的解答
2019/04/29 Python
Python爬取智联招聘数据分析师岗位相关信息的方法
2019/08/13 Python
Python PyQt5整理介绍
2020/04/01 Python
python 画图 图例自由定义方式
2020/04/17 Python
使用pandas实现筛选出指定列值所对应的行
2020/12/13 Python
利用Python实现自动扫雷小脚本
2020/12/17 Python
使用CSS3代码绘制可爱的Hello Kitty猫
2016/08/03 HTML / CSS
香港钟表珠宝首饰商城:OneMallTime网摩间
2016/10/14 全球购物
奥地利婴儿用品和玩具购物网站:baby-markt.at
2020/01/26 全球购物
后勤自我鉴定
2013/10/13 职场文书
食品业务员岗位职责
2014/03/18 职场文书
宿舍标语大全
2014/06/19 职场文书
会计简历自我评价
2015/03/10 职场文书
高中化学教学反思
2016/02/22 职场文书
python基础之函数的定义和调用
2021/10/24 Python