2016년 9월 12일 월요일

php 고유번호생성 (timestamp and rand)


php 고유번호생성 (timestamp and rand)

고유키를 생성할 필요가 있는데, 대리운전 개발중에 대리운전 기사들에게도 고유한 번호를 발급해줘야 할 필요가 있어요,
고유키를 휴대폰번호로 하면 좋긴 하지만 변동이 있어서, 고유키가 안돼요,
01099998888로 사용을 하다가 폰번호를 바꾸어 버리고 다른 대리기사가 이 번호를 사용하면 전체적으로 데이타가 어긋나기 때문에 변동이 없는 고유키가 필요해요
그러면 변동이 없는 고유키를 어떻게 발급할 것인가 <= 이 부분이 상당히 중요해요

php의 함수중에 time()함수와 rand()함수를 이용하면 가능해요
시분초단위까지의 time()함수 10자리와 rand() 1~9999까지의 랜덤함수면 거의 중복이 가능성이 없어서 고유키로 설정하는데 유용해요
좀 길다고 보시면 time()쪽의 앞자리를 좀 뒤로 하고 줄이셔도 돼요

소스)
$lcTimestamp = time();
echo "timestamp : ".$lcTimestamp."<br>";
if(strlen($lcTimestamp)==10){
echo "10 jari<br>";
}else if(strlen($lcTimestamp)==9){
$lcTimestamp=$lcTimestamp."0";
}else if(strlen($lcTimestamp)==8){
$lcTimestamp=$lcTimestamp."00";
}else if(strlen($lcTimestamp)==7){
$lcTimestamp=$lcTimestamp."000";
}else if(strlen($lcTimestamp)==6){
$lcTimestamp=$lcTimestamp."0000";
}else if(strlen($lcTimestamp)==5){
$lcTimestamp=$lcTimestamp."00000";
}

$lcRand = rand(1, 9999)."";
if($lcRand==null)$lcRand="";
if(strlen($lcRand)==0){
$lcRand = "0000".$lcRand;
}else if(strlen($lcRand)==1){
$lcRand = "000".$lcRand;
}else if(strlen($lcRand)==2){
$lcRand = "00".$lcRand;
}else if(strlen($lcRand)==3){
$lcRand = "0".$lcRand;
}else if(strlen($lcRand)==4){
$lcRand = "".$lcRand;
}

$lcGisaNumber = "";
$lcGisaNumber=$lcGisaNumber.$lcTimestamp;
$lcGisaNumber=$lcGisaNumber.$lcRand;

echo "gisa_number : ".$lcGisaNumber."<br>";

--------------------------------------------------------

소스_이미지보기)



즐거운 시간 보내세요~




댓글 없음:

댓글 쓰기