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 相关文章推荐
用PHP实现维护文件代码
Jun 14 PHP
PHP setcookie() cannot modify header information 的解决方法
Jan 09 PHP
学习php笔记 字符串处理
Oct 19 PHP
PHP跨时区(UTC时间)应用解决方案
Jan 11 PHP
php获取qq用户昵称和在线状态(实例分析)
Oct 27 PHP
php预定义变量使用帮助(带实例)
Oct 30 PHP
ThinkPHP里用U方法调用js文件实例
Jun 18 PHP
PHP模拟QQ登录的方法
Jul 29 PHP
php官方微信接口大全(微信支付、微信红包、微信摇一摇、微信小店)
Dec 21 PHP
PHP中用mysqli面向对象打开连接关闭mysql数据库的方法
Nov 05 PHP
PHP如何实现订单的延时处理详解
Dec 30 PHP
Laravel框架实现的上传图片到七牛功能详解
Sep 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
php文件上传的例子及参数详解
2013/12/12 PHP
PHP设计模式之观察者模式(Observer)详细介绍和代码实例
2014/04/08 PHP
滚动经典最新话题[prototype框架]下编写
2006/10/03 Javascript
仿服务器端脚本方式的JS模板实现方法
2007/04/27 Javascript
JavaScript 题型问答有答案参考
2010/02/17 Javascript
js 数组克隆方法 小结
2010/03/20 Javascript
jquery中获取元素的几种方式小结
2011/07/05 Javascript
5个数组Array方法: indexOf、filter、forEach、map、reduce使用实例
2015/01/29 Javascript
PHPMyAdmin导入时提示文件大小超出PHP限制的解决方法
2015/03/30 Javascript
jquery仿百度百科底部浮动导航特效
2015/08/08 Javascript
jquery实现隐藏在左侧的弹性弹出菜单效果
2015/09/18 Javascript
详解JavaScript数组的操作大全
2015/10/19 Javascript
JSONObject使用方法详解
2015/12/17 Javascript
使用jQuery操作HTML的table表格的实例解析
2016/03/13 Javascript
基于BootStrap Metronic开发框架经验小结【二】列表分页处理和插件JSTree的使用
2016/05/12 Javascript
vue2.0中goods选购栏滚动算法的实现代码
2017/05/17 Javascript
BootStrap导航栏问题记录
2017/07/31 Javascript
JavaScript 五大常见函数
2018/03/23 Javascript
SSM+layUI 根据登录信息显示不同的页面方法
2019/09/20 Javascript
Flask解决跨域的问题示例代码
2018/02/12 Python
搞定这套Python爬虫面试题(面试会so easy)
2019/04/03 Python
解决tensorboard多个events文件显示紊乱的问题
2020/02/15 Python
pycharm的python_stubs问题
2020/04/08 Python
Win10环境中如何实现python2和python3并存
2020/07/20 Python
基于python tkinter的点名小程序功能的实例代码
2020/08/22 Python
轻松掌握CSS3中的字体大小单位rem的使用方法
2016/05/24 HTML / CSS
Spartoo比利时:欧洲时尚购物网站
2017/12/06 全球购物
澳大利亚男士西服品牌:M.J.Bale
2018/02/06 全球购物
学生实习介绍信
2014/01/15 职场文书
2014年五一劳动节社区活动总结
2014/04/14 职场文书
奥林匹克的口号
2014/06/13 职场文书
乡村教师党员四风问题对照检查材料思想汇报
2014/10/08 职场文书
公务员年终个人总结
2015/02/12 职场文书
pytorch常用数据类型所占字节数对照表一览
2021/05/17 Python
css背景和边框标签实例详解
2021/05/21 HTML / CSS
如何通过简单的代码描述Angular父组件、子组件传值
2022/04/07 Javascript