PHP版本的自动生成有规则的订单号(或编号)
生活随笔
收集整理的這篇文章主要介紹了
PHP版本的自动生成有规则的订单号(或编号)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
<?php
/**
*?PHP版本的自動生成有規則的訂單號(或編號)
*?生成的格式是:?20130103000001?前面幾位為當前的日期,后面6位為系統自增長類型的編號
*?原理:?
*?1.獲取當前日期格式化值;
*?2.讀取文件,上次編號的值+1最為當前此次編號的值(記錄以文件的形式存儲)
*?(下月會接著這個編號)
*/class?FileEveryDaySerialNumber?{private?$filename;?//文件名?private?$separate;?//系統分隔符private?$width;?//自動增長部分的個數public?function?__construct($width,?$filename,?$separate)?{$this->width?=?$width;$this->filename?=?$filename;$this->separate?=?$separate;}public?function?getOrUpdateNumber($current,?$start)?{$record?=?IOUtil::read_content($this->filename);$arr?=?explode($this->separate,?$record);if($current?==?$arr[0]){?//如果是同一天,則繼續增長$arr[1]++;IOUtil::write_content("$arr[0],$arr[1]",?$this->filename);?//將新值存入文件中return?"$arr[0]".str_pad($arr[1],$this->width,0,STR_PAD_LEFT);}else{?//如果兩個日期不一樣則重新從起始值開始$arr[0]?=?$current;$arr[1]?=?$start;IOUtil::write_content("$arr[0],$arr[1]",?$this->filename);?//將新值存入文件中return?"$arr[0]".str_pad($arr[1],$this->width,0,STR_PAD_LEFT);}}?
}
class?IOUtil{public?static?function?read_content($filename){$handle?=?fopen($filename,"r");$content?=?fread($handle,filesize($filename));return?$content;}public?static?function?write_content($content,?$filename){$handle?=?fopen($filename,"w");fseek($handle,0);fwrite($handle,?$content);return?$content;}
}//測試代碼
//參數含義分別是日期后自增長數的位數,?存儲的文件名稱,?日期與自增長數的分割數
$obj?=?new?FileEveryDaySerialNumber(6,"EveryDaySerialNumber.dat",",");?
$current_date?=?date("Ymd");
echo?$obj->getOrUpdateNumber($current_date,1);?>
轉載于:https://blog.51cto.com/happyliu/1585362
總結
以上是生活随笔為你收集整理的PHP版本的自动生成有规则的订单号(或编号)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Add Binary
- 下一篇: GHOST分区丢失只剩C盘