STEAM_ID to steamid64 sql

Тема в разделе "Программирование / Скриптинг", создана пользователем vsemcomp, 12 авг 2014.

  1. vsemcomp

    vsemcomp

    Сообщения:
    2
    Симпатии:
    0
    Всем привет! Есть БД с STEAM_ID, надо конвертировать всех в формат steamid64.
    Пример: STEAM_1:0:10711520 в 76561197981688768
    Что посоветуете?
     
  2. BMW M6

    BMW M6

    Сообщения:
    1.221
    Симпатии:
    569
    1. В интернете ищешь формулу.
    2. Делаешь запрос через php в цикле на замену в БД.
    3. Радуемся

    Добавлено через 3 минуты
    Пиши в скайп: ladislaovrn
    Помогу.
     
    Последнее редактирование: 12 авг 2014
  3. vsemcomp

    vsemcomp

    Сообщения:
    2
    Симпатии:
    0
    Найден php-скрипт, но он для веб-формы, прошу помощи, как написать запрос через php в цикле на добавление в БД новой записи.

    PHP:
    <?php /*
    SteamID conversion tool by 8088 & KoST
    For more info, visit AlliedModders @ http://forums.alliedmods.net/showthread.php?t=60899
    */
    ?>

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    <html>
        <head>
            <meta http-equiv="content-type" content="text/html; charset=utf-8">
            <title>SteamID converter</title>
        </head>
        <body>
            <form method="get" action="">
                <div>
                    <fieldset>
                        <legend>Input</legend>
                        <table>
                            <tbody>
                                <tr>
                                    <td>SteamID / FriendID / customURL:<br>
                                        <input type="text" size="70" name="s" value="<?php echo htmlentities(stripslashes($_GET['s']),ENT_QUOTES); ?>">
                                    </td>
                                </tr>
                                <tr>
                                    <td align="right">
                                        <input class="button" type="submit" accesskey="s" value="Submit">
                                    </td>
                                </tr>
                            </tbody>
                        </table>
                    </fieldset>
                </div>
            </form>

            <?php
            $ret
    =get_input_type($_GET['s']);
            if (
    $ret==''){

            }else if (
    is_string($ret)){
                echo 
    '<div><fieldset><legend>Output</legend><table><tbody><tr><td>';
                echo 
    $ret;
                echo 
    '</td></tr></tbody></table></fieldset>';
                if (
    $_GET['s']!=='') {    echo $notice; }
                echo 
    '</div>';
            }else if (
    is_array($ret)){
                echo 
    '<div><fieldset><legend>Output</legend><table><tbody><tr><td>';
                
    convert($ret['type'],$ret['data']);
                echo 
    '</td></tr></tbody></table></fieldset>';
                if (
    $_GET['s']!=='') {    echo $notice;}
                echo 
    '</div>';
            }

            function 
    convert($type,$data){
                switch(
    $type){
                    case 
    'steamid':
                    
    $main='http://steamcommunity.com/profiles/'.bcadd((($data['auth']*2)+$data['server']),'76561197960265728');
                    echo 
    'FriendID: <a href="'.$main.'" title="Visit Steam Community page" target="blank">'.bcadd((($data['auth']*2)+$data['server']),'76561197960265728').'</a>';
                    break;
                    case 
    'friendid':
                    if (
    substr($data,-1)%2==0$server=0; else $server=1;
                    
    $auth=bcsub($data,'76561197960265728');
                    if (
    bccomp($auth,'0')!=1) {echo "Error: invalid FriendID or SteamID";return;}
                    
    $auth=bcsub($auth,$server);
                    
    $auth=bcdiv($auth,2);
                    echo 
    'SteamID: STEAM_0:'.$server.':'.$auth;
                    break;
                }
            }

            function 
    get_input_type($data){
                
    $data=strtolower(trim($data));
                if (
    $data!='') {
                    if (
    strlen($data)>80) return "too long";
                    if (
    substr($data,0,7)=='steam_0') {
                        
    $tmp=explode(':',$data);
                        if ((
    count($tmp)==3) && is_numeric($tmp[1]) && is_numeric($tmp[2])){
                            return array(
    'type'=>'steamid','data'=>array('auth'=>$tmp[2],'server'=>$tmp[1]));
                        }else{
                            return 
    "Error: invalid SteamID";
                        }
                    }else if (
    $p=strrpos($data,'/')){
                        
    $tmp=explode('/',$data);
                        foreach (
    $tmp as $item){
                            if (
    is_numeric($item)){
                                
    $a=$item;
                                break;
                            }
                        }
                        if ((
    is_numeric($a)) && (ereg('7656119'$a))) return array('type'=>'friendid','data'=>$a);
                        else {
                            
    $xml = @simplexml_load_file($data."?xml=1");
                            
    $steamid64=$xml->steamID64;
                            if (!
    ereg('7656119'$steamid64)) return "Error: invalid link";
                            else return array(
    'type'=>'friendid','data'=>$steamid64);
                        }
                    }else if ((
    is_numeric($data)) && (ereg('7656119'$a))){
                        return array(
    'type'=>'friendid','data'=>$data);
                    }else{
                        
    $xml = @simplexml_load_file("http://steamcommunity.com/id/".$data."?xml=1");
                        
    $steamid64=$xml->steamID64;
                        if (!
    ereg('7656119'$steamid64)) return "Error: invalid input";
                        else return array(
    'type'=>'friendid','data'=>$steamid64);
                    }
                }else{
                    return 
    "";
                }
            }
            
    ?>
        </body>
    </html>
    Добавлено через 2 часа 46 минут
    [РЕШЕНО]
     
    Последнее редактирование: 12 авг 2014