2012-01-31 7 views
0

"小さなURL"サイトはどのように小さなIDのURLを取得しますか?PHP:最小文字列

私はこのことを意味:blabla.com/ JH7

どのように私は、このような結果に得ることができますか?自己を繰り返さないmd5のような機能です。ありがとうございます。

+1

Googleで試したことがありますか? https://www.google.com/#q=php+create+tinyurl –

答えて

1

することができます単純反復トラフ文字列:

php > $str = 'aaa'; 
php > $str++; 
php > echo $str; 
aab 

別のオプションは、a-zA-Z0-9を含有するランダム文字列を生成し、よりので、あなただけ使用することができます(デシベルにそれらのいくつかの何百万人を生成する関数を用意することです必要に応じてそれらを実行する)またはループでそれを行う:

while(1){ 
    $rand = randomString(); 
    if(isUnique($rand)){ 
     break; 
    } 
} 
+0

ありがとう、それは私が探していたものです!私は質問があるhttp://stackoverflow.com/questions/9083311/php-mysql-instant-select-insert –

1
  1. short_urlurlの列のデータベーステーブルを作成します。
  2. まず、レコードa, example.comを挿入します。
  3. 各新規エントリ(bc、...、a1 ...)を含むshort_urlのインクリメント。

これは基本的にこれらのサービスがどのように機能するかです。

+0

大文字の使用を忘れないでください。AZ – dynamic

1

base36 encodingを使用すると、整数をそのようなコンパクトな文字列に変換できます。 PHPの使用

:decezeで述べたように

<?php 
$id  = 18367; 
$base36 = base_convert($id, 10, 36); // convert to base36 "e67" 
$base10 = base_convert($base36, 36, 10); // "e67" back to base 10, $id 

は、base62はbase36のようなあなたに-ZA-Z0-9の文字セットだけではなく-Z0-9を与えるんも適しています。例えば

+0

おそらくbase62(大文字/小文字)のようになります。:) – deceze

+0

@deceze私は周りを見回しましたが、大文字と小文字が混在するケースは見られませんでした。私は彼らが36と一緒に行ったので、大文字と小文字を入力する間にあいまいさがないと思う。 wikiの記事ではbase36を使用していると言われていますが、それでもまだ正しいかどうかはわかりません。 – drew010

関連する問題