2017-03-19 12 views
0

안녕하세요 모두 제 생성기에 대한 최종 코딩에 도움이 필요합니다.PHP는 제공된 ID와 길이로 배열 값에서 정확한 키 문자열을 만듭니다.

할 일 :
8 길이 코드

 

    0000 0000 = Code Number 0 
    0000 0001 = Code Number 1 
    0000 0158 = Code Number (1 * 10^2) + (5 * 10^1) + (8 * 10^0) = 158 

    For Alphabets (A=0, B=1, C= 2, ... Z = 25, a = 26, ..., z = 51, 0 = 52, 1 = 53, 9 = 61: 
    AAAA ABCD = Code Number (0 * 62^7) + (0 * 62^6) + (0 * 62^5) + (0 + 62^4) + (0 * 62^3) + (1 * 62^2) + (2 * 62^1) + (3 * 62^0) = 14780307 

이 현재의 방법입니다 생성 :
이 일을 어떤 역 방법이있을 필요가

키 생성을 -> 카운트 열쇠의 가능성

해결책 wan 테드 :
입력 ID -> 내가 스크립트가 적절한 설정으로 입력 ID 5000000를 걸거나 페이지를 사용할 수 없게되는 경우 순간주기

"를"PHP에 의해 너무 많은 자전거없이 키를 생성합니다.
나는 그것을 반전하는 방법에 대한 간단한 해결책을 찾지 못했지만,
하지만이 문제를 해결하려면 somethnig가 있어야한다고 생각합니다.
누군가가 솔루션을 알고 있다면 자유롭게 개발하고 커밋하십시오. 감사

Click here to see the BaseCode

+0

인코딩의 용도를 설명 할 수 있습니까? 이 정확한 인코딩을 선택해야하는 이유를 정확히 알고 싶습니다. –

+0

PHP [기능]이있는 base64와 유사합니다 (http://php.net/manual/en/function.base64-encode.php). – trincot

답변

0

나는 비슷한 솔루션 here at github를 발견하고 코드를 이해 한 후에 나는
작업 PHP 예제를 만들었습니다

 


    // Digital number -->> AlphaNum code 
      $code_id = 1; 
      $code_length = 8; 
      $characters_range = array_merge(range('A','Z'), range(0,9)); 
      $characters_count = count($characters_range); 
      $code_max_id = bcpow($characters_count, $code_length); 
      echo $code_max_id; 
      echo "\n"; 
      for($length=($code_length-1);$length>=0;$length--){ 
       $possition = floor($code_id/bcpow($characters_count, $length)); 
       $code_id = $code_id - ($possition * bcpow($characters_count, $length)); 
       $character_keys[] = $characters_range[$possition]; 
      } 
      //Choose which one to use 
      //echo implode($character_keys); 
      print_r($character_keys); 

Here is a Czech website with the same thread합니다.
이제는 문제없이 복잡한 CANG (Complex Alpha-Numeric Generator)를 마무리 할 수 ​​있습니다.