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开发中四种查询返回结果分析
Jan 02 PHP
apache和php之间协同工作的配置经验分享
Apr 08 PHP
PHP中time(),date(),mktime()区别介绍
Sep 28 PHP
php读取3389的脚本
May 06 PHP
PHP获取二维数组中某一列的值集合
Dec 25 PHP
PHP简单处理表单输入的特殊字符的方法
Feb 03 PHP
PHP的Laravel框架中使用AdminLTE模板来编写网站后台界面
Mar 21 PHP
非常实用的php验证码类
May 15 PHP
Ajax PHP JavaScript MySQL实现简易无刷新在线聊天室
Aug 17 PHP
基于ThinkPHP5.0实现图片上传插件
Sep 25 PHP
PHP命名空间简单用法示例
Dec 28 PHP
Laravel 读取 config 下的数据方法
Oct 13 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获取服务器端mac和客户端mac的地址支持WIN/LINUX
2014/05/15 PHP
php数组函数array_key_exists()小结
2015/12/10 PHP
PHP explode()函数用法讲解
2019/02/15 PHP
详解提高使用Java反射的效率方法
2019/04/29 PHP
laravel框架如何设置公共头和公共尾
2019/10/22 PHP
JavaScript 特殊字符
2007/04/05 Javascript
子窗口、父窗口和Silverlight之间的相互调用
2010/08/16 Javascript
javascript实现文字图片上下滚动的具体实例
2013/06/28 Javascript
JavaScript基础教程之alert弹出提示框实例
2014/10/16 Javascript
Jquery实现仿腾讯微博发表广播
2014/11/17 Javascript
Bootstrap每天必学之警告框插件
2016/04/26 Javascript
AngularJS实现树形结构(ztree)菜单示例代码
2016/09/18 Javascript
jquery.multiselect多选下拉框实现代码
2016/11/11 Javascript
Angular.JS去掉访问路径URL中的#号详解
2017/03/30 Javascript
JavaScript中使用webuploader实现上传视频功能(demo)
2017/04/10 Javascript
vue学习笔记之作用域插槽实例分析
2020/02/01 Javascript
js 将多个对象合并成一个对象 assign方法的实现
2020/09/24 Javascript
python根据距离和时长计算配速示例
2014/02/16 Python
Python写的贪吃蛇游戏例子
2014/06/16 Python
Python3中的列表,元组,字典,字符串相关知识小结
2017/11/10 Python
详解Python爬取并下载《电影天堂》3千多部电影
2019/04/26 Python
Python使用mongodb保存爬取豆瓣电影的数据过程解析
2019/08/14 Python
Django在Model保存前记录日志实例
2020/05/14 Python
Python pysnmp使用方法及代码实例
2020/08/24 Python
Python获取指定网段正在使用的IP
2020/12/14 Python
便携式太阳能系统的创新者:GOAL ZERO
2018/02/04 全球购物
MIKI HOUSE美国官方网上商店:日本领先的婴儿和儿童高级时装品牌
2020/06/21 全球购物
请解释virtual关键字的含义
2015/06/17 面试题
优秀干部获奖感言
2014/01/31 职场文书
中职毕业生自我鉴定
2014/09/13 职场文书
寒假社会实践个人总结
2015/03/06 职场文书
工作证明格式范文
2015/06/15 职场文书
政协常委会议主持词
2015/07/03 职场文书
尊师重教主题班会
2015/08/14 职场文书
2016廉洁从政心得体会
2016/01/19 职场文书
教你用Python matplotlib库制作简单的动画
2021/06/11 Python