xpaw/steamid

SteamID转换库

3.0.0 2024-08-17 21:09 UTC

This package is auto-updated.

Last update: 2024-08-29 18:26:09 UTC


README

此64位结构用于识别Steam网络上的各种对象。此库提供了一种轻松处理SteamID并使转换变得简单的方法。

此库不使用像在Valve开发者Wiki中描述或许多其他功能中使用的减法技巧。

SteamID.php需要现代PHP版本,并且需要安装GMP模块以执行64位数学运算。

简要概述

SteamID由四个部分组成:其宇宙、其类型、其实例和其账户ID

  • 宇宙:目前有5个宇宙。宇宙是Steam的唯一实例。您可能只会与公共宇宙交互,即常规Steam。只有Valve员工可以访问非公共宇宙。
  • 类型:SteamID的类型确定它标识的内容。最常见的类型是用于用户账户的个人。还有其他类型,如部落(Steam组)、游戏服务器等。
  • 实例:目前Steam允许三个同时的用户账户实例(1 = 桌面,2 = 控制台,4 = 网络,0 = 所有)
  • 账户ID:这代表一种类型的唯一账户。

使用此库

使用它非常简单,因为构造函数会自动识别给定的输入并从那里施展其魔法。如果提供的SteamID格式无效,则会抛出InvalidArgumentException。您可以在给定的SteamID实例上调用IsValid来执行各种检查,以确保给定的账户类型/宇宙/实例是正确的。您可以通过查看测试文件来了解如何操作SteamID的多个示例。

示例

try
{
	// Constructor also accepts Steam3 and Steam2 representations
	$s = new SteamID( '76561197984981409' );
}
catch( InvalidArgumentException $e )
{
	echo 'Given SteamID could not be parsed.';
}

// Renders SteamID in it's Steam3 representation (e.g. [U:1:24715681])
echo $s->RenderSteam3() . PHP_EOL;

// Renders SteamID in it's Steam2 representation (e.g. STEAM_0:1:12357840)
echo $s->RenderSteam2() . PHP_EOL;

// Converts this SteamID into it's 64bit integer form (e.g. 76561197984981409)
echo $s->ConvertToUInt64() . PHP_EOL;

还可以查看VanityURLs.php以解析任何用户输入,包括URL。如果您要处理用户输入,则只需使用SteamID::SetFromURL()即可。

SteamID标准化

如果您运行了一个用户可以输入自己的SteamID的网站,有时您可能会遇到设置了错误的宇宙或instanceid的SteamID,这将导致一个完全不同但有效的SteamID。为了避免这种情况,您可以操作给定的SteamID并将宇宙设置为公共宇宙,将实例设置为桌面。

try
{
	$s = new SteamID( $ID );
	
	if( $s->GetAccountType() !== SteamID::TypeIndividual )
	{
		throw new InvalidArgumentException( 'We only support individual SteamIDs.' );
	}
	else if( !$s->IsValid() )
	{
		throw new InvalidArgumentException( 'Invalid SteamID.' );
	}
	
	$s->SetAccountInstance( SteamID::DesktopInstance );
	$s->SetAccountUniverse( SteamID::UniversePublic );

	var_dump( $s->RenderSteam3() ); // [U:1:24715681]
	var_dump( $s->ConvertToUInt64() ); // 76561197984981409
}
catch( InvalidArgumentException $e )
{
	echo $e->getMessage();
}

执行这些步骤后,您可以通过调用RenderSteam3RenderSteam2ConvertToUInt64来获取标准化的SteamID。

请参阅Example.php以获取完整的示例。

函数

新的Steam邀请URL

Valve推出了分享个人资料URL的新方法(https://s.team/p/hjqphttps://steamcommunity.com/user/hjqp)。编码是简单的十六进制编码账户ID,每个字母被替换为自定义字母表。虽然HEX最初是0-9a-f,但在转换版本中,数字和字母ae不包括在内,但它们仍然可以在URL中使用,因为Valve进行了一次性替换。

此库在SetFromURL函数中本机支持解析s.team/p/steamcommunity.com/user/ URL。

以下是替换映射

许可证

MIT许可证