1234567890 이렇게 번호가 있으면
좀 길어서 4글자 정도로 표현하고 싶어요.
한자리에 숫자 뿐만 아니라 영문 대소문자, 특수문자까지 넣어서
10 + 26 + 26 (알파뱃 대소문자 갯수)
이렇게 62 진법으로 줄일 수 있을까요?
그리고 인코딩, 디코딩 다 php 선에서 해결되게...
이런걸 뭐라고 하는지 몰라서 구글링도 못하고 있네요.
도와주세요.
https://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=tipntech&wr_id=24043
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
이 게시물을 신고 하시겠습니까?신고사유를 선택해주세요.
얼마나 유용하게 쓰일수 있을지는 모르겠네요 ^^;
부족한 점이나 문제가 있는 부분이 있으면 태클 주세요.
* 수정내용 (사용가능한 수의 범위를 늘임.)
$tmp = (int)($dec/62);
$c62 = $key[$dec%62];
이것을
$tmp = floor($dec/62);
$c62 = $key[$dec-($tmp*62)];
으로..
< ?
// 10진수를 62진수로.
function c62dec($dec)
{
$key = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
$tmp = floor($dec/62);
$c62 = $key[$dec-($tmp*62)];
if ($tmp)
$c62 = c62dec($tmp).$c62;
return $c62;
}
// 62진수를 10진수로
function decc62($c62)
{
$key = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
$c62 = strrev($c62);
for ($i=0; $i <= strlen($c62)-1; $i++)
$dec += strpos($key,$c62[$i])*pow(62,$i);
return $dec;
}
echo c62dec('20031029');
echo decc62('1M2z7');
? >