2013-01-03 41 views
4

如果我使用UUID1作为列名,然后使用php检索它们如何将该UUID转换为可读的字符串,以便将该字符串插入到HTML中,然后再使用它来选择将同一列转换回UUID?这甚至有可能吗?Cassandra将UUID转换为字符串并返回

我可以用UTF8或其他东西去,但我想避免碰撞,并获得有序的宽行,我真的需要将这些列名称存储到HTML,我看不到任何其他方式来做到这一点。我正在使用phpcassa

回答

4

你可以施放UUID对象的字符串得到一个不错的打印版本。该相同的字符串可与UUID::import()一起使用以再次创建相同的UUID对象:

use phpcassa\UUID; 

$uuid = UUID::uuid1(); 
$pretty_uuid = (string)$uuid; 
echo("Printable version: " . $pretty_uuid . "\n"); 
$uuid_copy = UUID::import($pretty_uuid); 
assert ($uuid == $uuid_copy); 
0

假设你正在UUID作为字节[],您可以使用这样的事情:

public Object convertFromNoSqlImpl(byte[] value) { 
     byte[] timeArray = new byte[8]; 
     byte[] clockSeqAndNodeArray=new byte[8]; 
     System.arraycopy(value,0,timeArray,0,8); 
     System.arraycopy(value,8,clockSeqAndNodeArray,0,8); 
     long time = StandardConverters.convertFromBytes(Long.class, timeArray); 
     long clockSeqAndNode = StandardConverters.convertFromBytes(Long.class, clockSeqAndNodeArray); 
     UUID ud = new UUID(time,clockSeqAndNode); 
     return ud; 
    } 
相关问题