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 相关文章推荐
关于Appserv无法打开localhost问题的解决方法
Oct 16 PHP
Windows下利用Gvim写PHP产生中文乱码问题解决方法
Apr 20 PHP
一个PHP验证码类代码分享(已封装成类)
Jul 17 PHP
PHP实现下载断点续传的方法
Nov 12 PHP
php判断用户是否手机访问代码
Jun 08 PHP
详细解读PHP的Yii框架中登陆功能的实现
Aug 21 PHP
PHP+Ajax实现的无刷新分页功能详解【附demo源码下载】
Jul 03 PHP
PHP实现打包下载文件的方法示例
Oct 07 PHP
PHP设计模式之装饰器模式实例详解
Feb 07 PHP
基于swoole实现多人聊天室
Jun 14 PHP
PHP之多条件混合筛选功能的实现方法
Oct 09 PHP
PHP正则表达式函数preg_replace用法实例分析
Jun 04 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 一个随机字符串生成代码
2010/05/26 PHP
PHP中函数rand和mt_rand的区别比较
2012/12/26 PHP
解析使用substr截取UTF-8中文字符串出现乱码的问题
2013/06/20 PHP
php 伪造HTTP_REFERER页面URL来源的三种方法
2016/09/22 PHP
PHP中检索字符串的方法分析【strstr与substr_count方法】
2017/02/17 PHP
laravel dingo API返回自定义错误信息的实例
2019/09/29 PHP
fix-ie5.js扩展在IE5下不能使用的几个方法
2007/08/20 Javascript
jQuery仿Excel表格编辑功能的实现代码
2013/05/01 Javascript
JavaScript var声明变量背后的原理示例解析
2013/10/12 Javascript
js之事件冒泡和事件捕获详细介绍
2013/10/28 Javascript
代码触发js事件(click、change)示例应用
2013/12/13 Javascript
使用Node.js配合Nginx实现高负载网络
2015/06/28 Javascript
轻松实现javascript数据双向绑定
2015/11/11 Javascript
javascript跑马灯抽奖实例讲解
2020/04/17 Javascript
js重写方法的简单实现
2016/07/10 Javascript
一个超简单的jQuery回调函数例子(分享)
2016/08/08 Javascript
AngularJS实现网站换肤实例
2021/02/19 Javascript
使用vue实现简单键盘的示例(支持移动端和pc端)
2017/12/25 Javascript
angularjs 获取默认选中的单选按钮的value方法
2018/02/28 Javascript
javascript事件监听与事件委托实例详解
2019/08/16 Javascript
JavaScript中的this妙用实例分析
2020/05/09 Javascript
微信小程序基于高德地图API实现天气组件(动态效果)
2020/10/22 Javascript
JavaScript实现鼠标移入随机变换颜色
2020/11/24 Javascript
python求斐波那契数列示例分享
2014/02/14 Python
零基础写python爬虫之神器正则表达式
2014/11/06 Python
python通过zlib实现压缩与解压字符串的方法
2014/11/19 Python
python实现微信每日一句自动发送给喜欢的人
2019/04/29 Python
Python class的继承方法代码实例
2020/02/14 Python
PyTorch中torch.tensor与torch.Tensor的区别详解
2020/05/18 Python
天巡全球:Skyscanner Global
2017/06/20 全球购物
数字漫画:comiXology
2020/06/13 全球购物
应届毕业生自我评价分享
2013/12/15 职场文书
五好关工委申报材料
2014/05/31 职场文书
标准离婚协议书范文下载
2014/11/30 职场文书
2015初中政教处工作总结
2015/07/21 职场文书
在JavaScript中如何使用宏详解
2021/05/06 Javascript