第一种方式使用sprintf()函数 demo如下:/*生成卡号
@parameter int $goods_id,$id 根据goods_id(4位,不够4位补0)和id(6位,不够6位前边补0)生成 goods_id和id中间用-连接
@return string 返回生成后的字符串
* */
function generate_goods_numbers($goods_id,$id)
{
if(strlen($goods_id) == 4)
{
//等于4 则刚符合4位规则
$goods_id = $goods_id;
}
elseif(strlen($goods_id) > 4)
{
//大于4 截取前4位
$goods_id = substr($goods_id,0,4);
}
else
{
//既不等于4又不大于4 则在传进来的$goods_id前面补0 补齐4位
$goods_id = sprintf("%04d",$goods_id); //生成4位数,不足前面补0
}
if(strlen($id) == 6)
{
$id = $id;
}
elseif(strlen($id) > 6)
{
$id = substr($id,0,6);
}
else
{
$id = sprintf("%06d",$id); //生成6位数,不足前面补0
}
return $goods_id.'-'.$id;
}
//调用函数
$variable = generate_goods_numbers(12,29);
echo $variable; //输出:0012-000029
第二种方式 使用str_pad()函数 demo如下:str_pad()
顾名思义这个函数是针对字符串来说的这个可以对指定的字符串填补任何其它的字符串
例如:str_pad(带填补的字符串,填补后的长度,填补字符串,填补位置)
其中填补后的长度必须是个正整数,填补位置有三个选项,
左边:STR_PAD_LEFT,
右边:STR_PAD_RIGHT,
两端:STR_PAD_BOTH
演示:
echo str_pad(1,3,0,STR_PAD_LEFT); //输出:001
如果不使用sprintf()和str_pad()函数,也可以自己在函数内自己计算要补齐多少个0,至于还有没有其它函数我就不清楚了~
可以参考以下链接:
http://www.cnblogs.com/52php/p/5657892.html