2011-02-13 4 views
3

...기본 키를 만드는 방법은 문자입니까? 나는이 같은 기본 키를 만들

http://www.example.com/download?d=NAPHMPWI 

는 ... 즉. ?d=NAPHMPWI

어떻게하면됩니까?

+0

깨진 링크입니다. – alex

+0

업로드 한 내용이 마음에 들지 않지만 여기에 질문하십시오. 다운로드하지 않습니다. – RichardTheKiwi

+0

"불행히도 귀하가 클릭하신 링크를 사용할 수 없습니다." - 어쨌든 사람들이 외부 링크를 클릭하여 질문에 대답해야한다고 생각해서는 안됩니다. –

답변

6

대부분의 데이터베이스가 기본적으로 지원하므로 기본 키를 자동 증가 정수로 만듭니다. 기본 36 (숫자 0-9 및 A-Z 사용)으로 변환하여 URL 문자열로 표시하십시오.

echo base_convert($id, 10, 36); 

그리고 10을 기반으로하는 기본 (36)에서 변환하여 데이터베이스 식별자 URL을 변환 :

당신이 원하는 것은 대한 d 매개 변수와 같은 char 열에 기본 키를 (만들 경우
$id = base_convert($url_key, 36, 10); 
+0

숫자 ID 만 사용하면 어떤 이점이 있습니까? – alex

+0

그게 올바른 방법이지만, 다른 올바른 ID (megaupload와 같은 무언가가 당신을 좋아하지 않는)를 추측 할 수 있다는 단점이 있습니다. 따라서 암호화 (예 : HMAC 사용)를 사용하거나 모든 ID에 임의의 문자열을 추가하고 데이터베이스에 저장 (검색시 확인)하여 식별자에 약간의 중복성을 추가해야합니다. – Mormegil

+1

@alex @ meotimdihia의 질문에 대답하고 짧은 URL로 더 많은 데이터를 저장하는 이점. 10000은 10 진수 5 자리, 36 진수 3 자리를 차지합니다. –

0

귀하가 올린 링크) :

CREATE TABLE links (Url CHAR(8) NOT NULL, PRIMARY KEY(Url)) 
관련 문제