格式";生的;PHP中Java UUID的字符串
是否有一种更有效、更简化的方法可以在PHP中将“格式化”的Java UUID(不带破折号)转换为与Java兼容的格式(带破折号),并最终实现:我该如何做 我有一些代码已经执行了这个操作,但它似乎不专业,我觉得可以更有效地执行格式";生的;PHP中Java UUID的字符串,java,php,json,string,curl,Java,Php,Json,String,Curl,是否有一种更有效、更简化的方法可以在PHP中将“格式化”的Java UUID(不带破折号)转换为与Java兼容的格式(带破折号),并最终实现:我该如何做 我有一些代码已经执行了这个操作,但它似乎不专业,我觉得可以更有效地执行 [... PHP code ...] $uuido = $json['id']; $uuidx = array(); $uuidx[0] = substr( $uuido, 0, 8 ); $uuidx[1] = substr( $uuido, 8, 4 ); $uuid
[... 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']
的数据通过使用file\u get\u contents($url)
函数和json\u decode($file)
从下面调用,这也可以通过cURL来完成,但由于它最终会同时请求2048个配置文件,我认为它会变得很慢
我确实有我的代码在使用中,并且是通过下面的公开的,其中通常包含一个在线玩家的列表
注意:有几个问题与此相关,但据我所知,没有一个问题适用于PHP。我已经看过了
我提到Java UUID,因为解析后的输出应该有效地转换为播放器UUID,以便在1.7.X之后用于Spigot或Craftbukkit的基于Java的插件中使用。UUID不是一种特殊的Java格式。这是最重要的 通用唯一标识符(UUID)是软件构造中使用的一种标识符标准UUID只是一个128位的值 发生的情况是,从128位值到相同值的可读版本的转换(将其转换为字符串)通常遵循一些约定 基本上,数字被转换成更好的人类可读的十六进制格式,用一些连字符来分隔位块
从性能角度看,您可以多次使用函数,而不是使用substr创建字符串数组并对其应用内爆。您的问题没有多大意义,但假设您希望以正确的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借来的,见此处:
或者在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:
然后您可以将其发送到Java,在Java中,您可以使用
fromtString()
创建UUID对象。您还没有指定要实现UUID格式的语言。。。您提到了Java这个词,但只提供了PHP代码和查询。你能更清楚一点你想做什么吗?按要求做。在标题和问题中更新。回顾问题:[……]我提到Java UUID,因为解析的输出应该有效地转换为播放器UUID,以便在1.7.X之后用于基于Java的Spigot或Craftbukkit插件。您的第二个答案通过以下方式指导我:$UUID=preg_replace(/(\w{8})(\w{4})(\w{4})(\w{4})(\w{4})(\w{12})/I“,“$1-$2-$3-$4-$5”;$json['id']);
@LeoV117虽然我认为正则表达式很好用,但在某些情况下,当我看到具有本机特性的解决方案时,如substr()
,我倾向于避免使用它。然而,在这种情况下,正则表达式可能具有更快的优势。