2011-07-23 3 views
1

私はYoyubeのような自分の一意のIDを作成するために何度もthis tutorialを読んだことがあります。と---
E5DBC5AD85E952BF
F26D47E15E785137
4DE9165CE24633D0
26B44580D7ECDCD3
Youtubeのプレイリストのような一意のIDを生成する - PHP

http://www.youtube.com/playlist?list=PL124C2FA58C814231

いくつかの例:

しかし、私は、ユニークIDのこの種を作成する方法を見つけることができませんプレフィックスPL -
PL3F16C0AE0309BB56
PL124C2FA58C814231

PHPを使用してこの種の一意のIDを作成するにはどうすればよいですか?私のデータベースは、自動増分PRIMARY KEYを使用しました。

ありがとうございました。

答えて

0

これを試してみてください:

echo 'PL' . strtoupper(md5(time())); 

がその後明らかに値が一意であるかどうかを確認するためにあなたのデータソースを確認してください。

+0

値をハッシュしても、一意性が保証されるわけではありません。 – Gumbo

+1

これは非常に真実です。迅速かつ汚れた解決策です。そのため、一意性の値をチェックすることを提案しました。 –

+0

md5を使用すると、文字列が長すぎるため、このように数字にデコードすることはできませんhttp://kevin.vanzonneveld.net/techblog/article/create_short_ids_with_php_like_youtube_or_tinyurl/。別の方法はありますか? – redstrike

3

PHPは、この目的のためにuniqid()関数を持っています。その最初のパラメータとしてそれにプレフィックスを渡します

$id = uniqid("PL"); 

// PL4e2b26588bec0 

これはセキュリティのために必要とされている場合は、PHPのドキュメントページ上で議論し、より良いオプションがあります。

+0

私はこの機能を知っていますが、このような番号にデコードすることができるIDを作成したいと思います。http://kevin.vanzonneveld.net/techblog/article/create_short_ids_with_php_like_youtube_or_tinyurl/これを行う方法はありますか? – redstrike

+0

数字にデコードする必要があるのはなぜですか?自動的に増分された主キーにマッピングされるデータベースの列として格納するだけです。これらはすべて16進文字なので、接頭辞を取り除いて10進数にすると、 'hexdec()'を使うことができます。 –

+0

あなたの答えをありがとう、マイケル!それは私のために非常に便利です。 – redstrike

関連する問題