在PHP中,是否存在更有效,简化的方法来将“格式化的” Java UUID(不带破折号)转换为Java兼容格式(带破折号),并且最终:我将如何做?
我有已经执行此操作的代码,但是它似乎不专业,我认为可以更有效地完成它。
[... PHP code ...] $uuido = $json['id']; $uuidx = array(); $uuidx[0] = substr( $uuido, 0, 8 ); $uuidx[1] = substr( $uuido, 8, 4 ); $uuidx[2] = substr( $uuido, 12, 4); $uuidx[3] = substr( $uuido, 16, 4); $uuidx[4] = substr( $uuido, 20, 12); $uuid = implode( "-", $uuidx ); [... PHP code ...] Input: f9e113324bd449809b98b0925eac3141 Output: f9e11332-4bd4-4980-9b98-b0925eac3141
该数据来自$json['id']从以下称为Mojang提供文件API使用的file_get_contents( $url )函数组合json_decode( $file ),这可以通过或者卷曲来完成- 但因为它最终会立刻要求任何东西,以2048点的配置文件,我想它会变得缓慢。
$json['id']
file_get_contents( $url )
json_decode( $file )
通过以下ProjectRogue Server Ping API,我确实可以使用我的代码,并且可以将其公开使用,该API通常包含一系列在线播放器。
注意: 有几个与此相关的问题,但据我所知,没有一个问题适用于PHP。我看了
我提到Java UUID,因为解析后的输出应有效地转换为Player UUID,以便在1.7.X之后在Spigot或Craftbukkit的基于Java的插件中使用。
您的问题没有多大意义,但是假设您想以Java正确的格式读取UUID,则可以执行以下操作:
import java.util.UUID; class A { public static void main(String[] args){ String input = "f9e113324bd449809b98b0925eac3141"; String uuid_parse = input.replaceAll( "(\\w{8})(\\w{4})(\\w{4})(\\w{4})(\\w{12})", "$1-$2-$3-$4-$5"); UUID uuid = UUID.fromString(uuid_parse); System.out.println(uuid); } }
从Maerics借来的,请参阅此处:https ://stackoverflow.com/a/18987428/4195825
或者在PHP中,您可以执行以下操作:
<?php $UUID = "f9e113324bd449809b98b0925eac3141"; $UUID = substr($UUID, 0, 8) . '-' . substr($UUID, 8, 4) . '-' . substr($UUID, 12, 4) . '-' . substr($UUID, 16, 4) . '-' . substr($UUID, 20); echo $UUID; ?>
从fico7489借来的:https ://stackoverflow.com/a/33484855/4195825
然后,可以将其发送到Java,在Java中使用可以创建UUID对象fromtString()。
fromtString()