STEAM-ID конвертер

Тема в разделе "Веб-технологии", создана пользователем Антон Богатиков, 5 янв 2016.

  1. Антон Богатиков

    Антон Богатиков

    Сообщения:
    4
    Симпатии:
    1
    Класс конвертирует STEAM ID
    PHP:
    class SteamID
    {
        public static function 
    st32to3($steamid32)
        {
            if (
    preg_match('/^STEAM_0\:1\:(.*)$/'$steamid32$res)) {
     
                
    $st '[U:1:';
                
    $st .= $res[1] * 1;
                
    $st .= ']';
                return 
    $st;
            }
            return 
    false;
        }
     
        public static function 
    st3to32($steamid3)
        {
            if (
    preg_match("/\[U:1:(\d+)\]/"$steam3)) {
                
    $steam3 preg_replace("/\[U:1:(\d+)\]/""$1"$steamid3);
                
    $A $steam3 2;
                
    $B intval($steam3 2);
                return 
    "STEAM_0:" $A ":" $B;
            }
            return 
    false;
        }
     
        public static function 
    st32to64($steamid32)
        {
            if (
    preg_match('/^STEAM_0\:1\:(.*)$/'$steamid32$res)) {
                list(, 
    $m1$m2) = explode(':'$steamid323);
                list(
    $steam_cid,) = explode('.'bcadd((((int)$m2 2) + $m1), '76561197960265728'), 2);
                return 
    $steam_cid;
            }
            return 
    false;
        }
     
        public static function 
    st64to32($steamid64)
        {
            
    $pattern "/^(7656119)([0-9]{10})$/";
            if (
    preg_match($pattern$steamid64$match)) {
                
    $const1 7960265728;
                
    $const2 "STEAM_0:";
                
    $steam32 '';
                if (
    $const1 <= $match[2]) {
                    
    $a = ($match[2] - $const1) % 2;
                    
    $b = ($match[2] - $const1 $a) / 2;
                    
    $steam32 $const2 $a ':' $b;
                }
                return 
    $steam32;
            }
            return 
    false;
        }
    }  

    Пример:
    PHP:
    <?php
    $steamid32 
    SteamID::st64to32(76561198086827637); // Вернёт STEAM_0:1:63280954
     
    Последнее редактирование: 6 янв 2016
    AS TRO нравится это.
  2. Felton

    Felton

    Сообщения:
    332
    Симпатии:
    9
    А это для чего ?Описания нет.Что это за код ???
    Для чего это надо ?
     
  3. HooLIGUN

    HooLIGUN

    Сообщения:
    748
    Симпатии:
    124
    Написано же
    1. Класс конвертирует STEAM ID
    2. php код
    3. для конвертирования STEAM ID
     
  4. Se7en_RUS

    Se7en_RUS

    Сообщения:
    53
    Симпатии:
    11
    PHP:
    class SteamID
    {
        public static function 
    st32to3($steamid32)
        {
            if (
    preg_match('/^STEAM_1\:*\:(.*)$/'$steamid32$res)) {
     
                
    $st '[U:1:';
                
    $st .= $res[1] * 1;
                
    $st .= ']';
                return 
    $st;
            }
            return 
    false;
        }
     
        public static function 
    st3to32($steamid3)
        {
            if (
    preg_match("/\[U:1:(\d+)\]/"$steam3)) {
                
    $steam3 preg_replace("/\[U:1:(\d+)\]/""$1"$steamid3);
                
    $A $steam3 2;
                
    $B intval($steam3 2);
                return 
    "STEAM_1:" $A ":" $B;
            }
            return 
    false;
        }
     
        public static function 
    st32to64($steamid32)
        {
            if (
    preg_match('/^STEAM_1\:*\:(.*)$/'$steamid32$res)) {
                list(, 
    $m1$m2) = explode(':'$steamid323);
                list(
    $steam_cid,) = explode('.'bcadd((((int)$m2 2) + $m1), '76561197960265728'), 2);
                return 
    $steam_cid;
            }
            return 
    false;
        }
     
        public static function 
    st64to32($steamid64)
        {
            
    $pattern "/^(7656119)([0-9]{10})$/";
            if (
    preg_match($pattern$steamid64$match)) {
                
    $const1 7960265728;
                
    $const2 "STEAM_1:";
                
    $steam32 '';
                if (
    $const1 <= $match[2]) {
                    
    $a = ($match[2] - $const1) % 2;
                    
    $b = ($match[2] - $const1 $a) / 2;
                    
    $steam32 $const2 $a ':' $b;
                }
                return 
    $steam32;
            }
            return 
    false;
        }
    }  
    Немного пофиксил для CS:GO
     
    Последнее редактирование: 26 янв 2016
    AS TRO нравится это.
  5. Антон Богатиков

    Антон Богатиков

    Сообщения:
    4
    Симпатии:
    1
    CS:S steam id 32 от CS:GO steam id 32 отличается единицей в STEAM_1?
     
  6. robocop

    robocop

    Сообщения:
    144
    Симпатии:
    8
    Все равно не понятно:) Это скрипт для сайта? Плагин? Чего это такое "класс"?


    Оффтоп
     
  7. MihailM

    MihailM убежал :)

    Сообщения:
    446
    Симпатии:
    27
    на Javа-у бы перевести, цены бы не было для такого скриптика, без PHP !
     
    Последнее редактирование: 27 янв 2016
  8. Se7en_RUS

    Se7en_RUS

    Сообщения:
    53
    Симпатии:
    11
    Да, в ксго стимид всегда с единицы начинается
     
  9. Bandit228

    Bandit228

    Сообщения:
    102
    Симпатии:
    10
    Кому надо: Вот простой скрипт получения из маленького SteamID ссылки на профиль:
    PHP:
      $numbers1 str_replace("STEAM_1:1:","",$row['authid']);
      
    $numbers2 = ($numbers1 2);
      
    $numbers3 = ($numbers2 76561197960265728);