Ubuntuの場合の英語での解説はWeb上にたくさんあるけど, Debian について日本語で書いてもいいかな.
UUID=Universally Unique Identifierは, (確率的に)一意性が保証される文字列(を毎回ランダムに返す仕組み). ディスクのラベルや, git のコミットの名前に使われている.
PHPでは標準ではサポートされていないが, package を導入することで使う方法が2つある. この2つはOSSP(後者)とそうでないもの(前者)の2つの« 異なる »実装だと思うんだけど正しいだろうか. ちなみに Debian package uuid に含まれる コマンドラインツール uuid というのもあるけど, これは libossp-uuid を使っているので, 後者の実装.
なお, 両者に出てくる uuid_create 関数はたまたま名前が衝突しただけ. 引数も異なる.
PECL package uuid に含まれる uuid_create 関数
http://pecl.php.net/package/uuid
準備
PECLを使うために, Debian packages php-pear と php5-dev が必要.
pecl install uuid
する(Debian packages libuuid, uuid-dev やこれらが依存するものが必要). さらに, php.iniに extension=uuid.so を加える.
使用
例えば, UUID V4なら
$uuidstr=trim(uuid_create(UUID_TYPE_RANDOM));
Debian package php5-uuid に含まれるuuid_make, uuid_create, uuid_export 関数
http://packages.debian.org/lenny/php5-uuid
準備
Debian packages php5-uuid, libossp-uuid-dev やこれらが依存するものが必要.
使用
例えば, UUID V4なら
uuid_create(&$context); uuid_make($context, UUID_MAKE_V4); uuid_export($context, UUID_FMT_STR, &$uuid); $uuidstr=trim($uuid);
uniqid
UUIDじゃないけど, PHP4,5 に標準で備わる, uniqid('',true) で間に合う場合もあるかも. Yさんに教えてもらいました. ありがとう.
http://php.net/manual/en/function.uniqid.php