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中3种方法统计字符串中每种字符的个数并排序
Aug 27 PHP
浏览器预览PHP文件时顶部出现空白影响布局分析原因及解决办法
Jan 11 PHP
php中serialize序列化与json性能测试的示例分析
Apr 27 PHP
thinkphp3查询mssql数据库乱码解决方法分享
Feb 11 PHP
PHP错误Parse error: syntax error, unexpected end of file in test.php on line 12解决方法
Jun 23 PHP
php实现批量压缩图片文件大小的脚本
Jul 04 PHP
Linux下PHP安装mcrypt扩展模块笔记
Sep 10 PHP
ecshop实现smtp发送邮件
Feb 03 PHP
Yii中实现处理前后台登录的新方法
Dec 28 PHP
PHP 接入支付宝即时到账功能
Sep 18 PHP
Thinkphp结合AJAX长轮询实现PC与APP推送详解
Jul 31 PHP
php 输出缓冲 Output Control用法实例详解
Mar 03 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设计模式 Strategy(策略模式)
2011/06/26 PHP
深入array multisort排序原理的详解
2013/06/18 PHP
优化JavaScript脚本的性能的几个注意事项
2006/12/22 Javascript
javascript 避免闭包引发的问题
2009/03/17 Javascript
加载 Javascript 最佳实践
2011/10/30 Javascript
jquery中的$(document).ready()使用小结
2014/02/14 Javascript
JS判断、校验MAC地址的2个实例
2014/05/05 Javascript
jQuery中的$.ajax()方法应用
2014/05/06 Javascript
jQuery插件jRumble实现网页元素抖动
2015/06/05 Javascript
jQuery实现带有上下控制按钮的简单多行滚屏效果代码
2015/09/04 Javascript
BOM系列第三篇之定时器应用(时钟、倒计时、秒表和闹钟)
2016/08/17 Javascript
微信小程序 条件渲染详解
2016/10/09 Javascript
Node.js常用工具之util模块
2017/03/09 Javascript
vue使用iframe嵌入网页的示例代码
2020/06/09 Javascript
Vue登录注册并保持登录状态的方法
2018/08/17 Javascript
使用rollup打包JS的方法步骤
2018/12/05 Javascript
vue-cli3.0实现一个多页面应用的历奇经历记录总结
2020/03/16 Javascript
vue-router定义元信息meta操作
2020/12/07 Vue.js
Python中zfill()方法的使用教程
2015/05/20 Python
python实现识别手写数字 python图像识别算法
2020/03/23 Python
python2 中 unicode 和 str 之间的转换及与python3 str 的区别
2019/07/25 Python
Python通过正则库爬取淘宝商品信息代码实例
2020/03/02 Python
Python类型转换的魔术方法详解
2020/12/23 Python
html5页面结构_动力节点Java学院整理
2017/07/10 HTML / CSS
英国知名奢侈品包包品牌:Milli Millu
2016/12/22 全球购物
Nike香港官网:Nike HK
2019/03/23 全球购物
澳大利亚鞋仓库:Shoe Warehouse
2019/07/25 全球购物
anello泰国官方网站:日本流行包包品牌
2019/08/08 全球购物
请用用Java代码写一个堆栈
2012/01/26 面试题
使用索引(Index)有哪些需要考虑的因素
2016/10/19 面试题
行政办公员自我评价分享
2013/12/14 职场文书
男方父母婚礼答谢词
2014/01/25 职场文书
幼师求职自荐信范文
2014/01/26 职场文书
大学生开西餐厅创业计划书
2014/02/01 职场文书
文明演讲稿范文
2014/05/12 职场文书
火灾现场处置方案
2014/05/28 职场文书