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
ajax缓存问题解决途径
Dec 06 PHP
phpMyAdmin 安装配置方法和问题解决
Jun 08 PHP
php fckeditor 调用的函数
Jun 21 PHP
PHP 中文处理技巧
Apr 25 PHP
FirePHP 推荐一款PHP调试工具
Apr 23 PHP
PHP中array_merge和array相加的区别分析
Jun 17 PHP
使用php测试硬盘写入速度示例
Jan 27 PHP
WordPress的文章自动添加关键词及关键词的SEO优化
Mar 01 PHP
PHP使用递归算法无限遍历数组示例
Jan 13 PHP
PHP性能测试工具xhprof安装与使用方法详解
Apr 29 PHP
php/JS实现的生成随机密码(验证码)功能示例
Jun 06 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
linux下 C语言对 php 扩展
2008/12/14 PHP
PHP foreach循环使用详解与实例代码
2010/05/08 PHP
php使用ffmpeg获取视频信息并截图的实现方法
2016/05/03 PHP
php微信开发自定义菜单
2016/08/27 PHP
windows7配置Nginx+php+mysql的详细教程
2016/09/04 PHP
thinkphp自定义权限管理之名称判断方法
2017/04/01 PHP
JavaScript 节点操作 以及DOMDocument属性和方法
2007/12/06 Javascript
javascript中substr,substring,slice.splice的区别说明
2010/11/25 Javascript
JavaScript中的property和attribute介绍
2011/12/26 Javascript
JavaScript学习笔记记录我的旅程
2012/05/23 Javascript
jquery改变tr背景色的示例代码
2013/12/28 Javascript
javascript日期对象格式化为字符串的实现方法
2014/01/14 Javascript
jQuery控制的不同方向的滑动(向左、向右滑动等)
2014/07/18 Javascript
Javascript控制div属性动态变化实例分析
2015/10/08 Javascript
JQuery 传送中文乱码问题的简单解决办法
2016/05/24 Javascript
基于Turn.js 实现翻书效果实例解析
2016/06/20 Javascript
使用Angular CLI进行Build(构建)和Serve详解
2018/03/24 Javascript
生产制造追溯系统之在线打印功能
2019/06/03 Javascript
Vue实现商品分类菜单数量提示功能
2019/07/26 Javascript
react使用CSS实现react动画功能示例
2020/05/18 Javascript
详谈Vue.js框架下main.js,App.vue,page/index.vue之间的区别
2020/08/12 Javascript
在vue中给后台接口传的值为数组的格式代码
2020/11/12 Javascript
python求pi的方法
2014/10/08 Python
Python爬取网易云音乐热门评论
2017/03/31 Python
Python命令行解析模块详解
2018/02/01 Python
Python import与from import使用及区别介绍
2018/09/06 Python
Python使用__new__()方法为对象分配内存及返回对象的引用示例
2019/09/20 Python
Python中类似于jquery的pyquery库用法分析
2019/12/02 Python
Levi’s美国官网:美国著名的牛仔裤品牌
2016/08/19 全球购物
FILA斐乐中国官方商城:意大利运动品牌
2017/01/25 全球购物
高级护理专业毕业生推荐信
2013/12/25 职场文书
商场拾金不昧表扬信
2014/01/13 职场文书
2015年重阳节活动主持词
2015/07/30 职场文书
企业安全生产检查制度
2015/08/06 职场文书
慰问信(范文3篇)
2019/10/23 职场文书
PYTHON 使用 Pandas 删除某列指定值所在的行
2022/04/28 Python