[php] Новичкам: задаем вопросы

Discussion in 'PHP' started by _Great_, 26 May 2007.

Thread Status:
Not open for further replies.
  1. N2kroot

    N2kroot New Member

    Joined:
    25 Oct 2009
    Messages:
    75
    Likes Received:
    3
    Reputations:
    0
    *

    Скрипт дайте на капчю пожалуйста)
     
  2. krypt3r

    krypt3r Elder - Старейшина

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    http://www.captcha.ru/kcaptcha/
     
  3. N2kroot

    N2kroot New Member

    Joined:
    25 Oct 2009
    Messages:
    75
    Likes Received:
    3
    Reputations:
    0
    PHP:
    <?php

    if(!function_exists('getmicrotime'))
    {
        function 
    getmicrotime() 
        { 
            list(
    $usec$sec) = explode(" "microtime()); 
            return ((float)
    $usec + (float)$sec); 
        }
    }
    function 
    serverInfo($ip$port)
    {
        
    $ip gethostbyname($ip);
        
    $timeStart getmicrotime();
        
    $fp fsockopen('udp://'.$ip$port);
        
    stream_set_timeout($fp2); 
        if(
    $fp
        { 
            
    fwrite($fp,"\xFF\xFF\xFF\xFFTSource Engine Query\0\r");
            
    $temp fread($fp4);
            
    $status socket_get_status($fp); 
            if(
    $status['unread_bytes']>0
            {
                
    $temp fread($fp$status['unread_bytes']);
                
    $server['ping'] = (int)((getmicrotime() - $timeStart)*1000);
                
    $array = array(); 
                
    $pos 0
                while(
    $pos !== false
                { 
                    
    $pos2 strpos($temp"\0"$pos+1); 
                    
    $array[] = substr($temp$pos+1$pos2-$pos)."\n"
                    
    $pos $pos2
                }
                
    $server['status'] = 'on';
                if( 
    strpos($array[0], $ip) !== 0
                { 
                    
    $server['players'] = ord($array[5][0]); 
                    
    $server['maxplayers'] = ord($array[5][1]); 
                    
    $server['name'] = trim(substr($array[0], 1)); 
                    
    $server['map'] = trim($array[1]); 
                    
    $server['game'] = trim($array[2]);
                } 
                else 
                { 
                    
    $server['players'] = ord($array[5][0]); 
                    
    $server['maxplayers'] = ord($array[5][1]); 
                    
    $server['name'] = trim($array[1]); 
                    
    $server['map'] = trim($array[2]);
                    
    $server['game'] = trim($array[3]);
                }
                
    $command pack("V", -1) . 'W';
                
    fwrite($fp$commandstrlen($command));
                
    $temp fread($fp1500);
                
    $temp substr($temp5);
                
    $lo = (ord($temp[1]) << 8) | ord($temp[0]);
                
    $hi = (ord($temp[3]) << 8) | ord($temp[2]);
                
    $data "\xFF\xFF\xFF\xFF\x55".pack("V", ($hi << 16) | $lo);
                
    fwrite($fp$data);
                
    $temp fread($fp5);
                
    $status socket_get_status($fp);
                if(
    $status['unread_bytes']>0
                {
                    
    $temp fread($fp$status['unread_bytes']);
                    
    $array = array();
                    
    $temp substr($temp1);
                    for(
    $i=1;$i<=$server['players'];$i++)
                    {
                        
    $temp substr($temp1);
                        
    $pos strpos($temp"\0");
                        
    $name substr($temp0$pos);
                        
    $temp substr($temp$pos+1);
                        
    $lo = (ord($temp[1]) << 8) | ord($temp[0]);
                        
    $hi = (ord($temp[2]) << 8) | ord($temp[3]);
                        
    $temp substr($temp4);
                        
    $kills = ($hi << 16) | $lo;
                        
    $f = @unpack("f1float"$temp);
                        
    $temp substr($temp4);
                        
    $time = (int)$f['float'];
                        if(
    trim($name))
                            
    $server['stats'][] = array("name" => $name"kills" => $kills,
                                                       
    "time" => gmdate("H:i:s"$time));
                    }
                }
            }
            else
                
    $server['status'] = 'off';
        }
        return 
    $server;
    }

    print_r(serverInfo("cs.otstrel.ru"27025));
    ?>
    Вот скрипт снифает который кску,но я получаю массивные данные,а как мне их,к примеру,преобразовать в таблицу?
     
  4. L I G A

    L I G A Banned

    Joined:
    27 Jul 2008
    Messages:
    482
    Likes Received:
    380
    Reputations:
    49
    N2kroot
    пропусти массив через цикл: foreach() || for() || while()

    ________
    0ph.ru
     
    #12384 L I G A, 26 Oct 2009
    Last edited: 10 Dec 2009
  5. N2kroot

    N2kroot New Member

    Joined:
    25 Oct 2009
    Messages:
    75
    Likes Received:
    3
    Reputations:
    0
    Подробнее напиши ) непонятно,как именно? Я пытался сам фильтровать-ошибки получаю...
     
  6. L I G A

    L I G A Banned

    Joined:
    27 Jul 2008
    Messages:
    482
    Likes Received:
    380
    Reputations:
    49
    N2kroot
    что выводит :
    Code:
    print_r(serverInfo("cs.otstrel.ru", 27025));
    ?

    ________
    0ph.ru
     
    #12386 L I G A, 26 Oct 2009
    Last edited: 10 Dec 2009
  7. N2kroot

    N2kroot New Member

    Joined:
    25 Oct 2009
    Messages:
    75
    Likes Received:
    3
    Reputations:
    0
    Напиши реальный сервер...И хостинг должен быть с возможностью отправки пакетов
     
  8. L I G A

    L I G A Banned

    Joined:
    27 Jul 2008
    Messages:
    482
    Likes Received:
    380
    Reputations:
    49
    не в моих интересах тестить твой код,чтоб выводить массив => надо знать его структуру,если индексы установлены по дефолту и он 1-мерный:
    PHP:
    <?php
    $a
    =array(a,b,c,d,e,f,g);
    foreach(
    $a as $key=>$value){
        echo 
    $key,' ',$value,'<br/>';
        }
       
    /*
    0 a
    1 b
    2 c
    3 d
    4 e
    5 f
    6 g
       */
    ?>
    ________
    0ph.ru
     
    #12388 L I G A, 26 Oct 2009
    Last edited: 10 Dec 2009
  9. N2kroot

    N2kroot New Member

    Joined:
    25 Oct 2009
    Messages:
    75
    Likes Received:
    3
    Reputations:
    0
    Выводит вот что:
    PHP:
    Array ( [ping] => 189 [status] => on [players] => 20 [maxplayers] => 21 [name] => TheAbyss 1.6 #8 Public [map] => de_vertigo [game] => cstrike [stats] => Array ( [0] => Array ( [name] => I'm Godzilla, you are Japan [kills] => 0 [time] => 00:00:12 ) [1] => Array ( [name] => Dredd [kills] => 0 [time] => 00:03:27 ) [2] => Array ( [name] => al1baba [kills] => 0 [time] => 00:00:08 ) [3] => Array ( [name] => <==|=ROMIK=|==> [kills] => 0 [time] => 00:01:49 ) [4] => Array ( [name] => 6ATAH [kills] => 0 [time] => 00:14:07 ) [5] => Array ( [name] => 1 raz igrau O_o [kills] => 0 [time] => 00:20:42 ) [6] => Array ( [name] => X_2 [kills] => 0 [time] => 00:00:13 ) [7] => Array ( [name] => ggg [kills] => 0 [time] => 00:00:13 ) [8] => Array ( [name] => Anarh [kills] => 0 [time] => 00:10:56 ) [9] => Array ( [name] => PAIN [kills] => 0 [time] => 00:14:34 ) [10] => Array ( [name] => ZinA [kills] => 0 [time] => 00:04:26 ) [11] => Array ( [name] => M.A.S.H.A. [kills] => 0 [time] => 00:00:15 ) [12] => Array ( [name] => KAMEHb [kills] => 0 [time] => 00:00:13 ) [13] => Array ( [name] => tv [kills] => 0 [time] => 00:00:14 ) [14] => Array ( [name] => eAsy ? [kills] => 0 [time] => 00:00:13 ) [15] => Array ( [name] => VODKA [kills] => 0 [time] => 00:02:04 ) [16] => Array ( [name] => I am | mef [kills] => -1 [time] => 00:15:47 ) [17] => Array ( [name] => I^np* sho0t[3]R [kills] => 0 [time] => 00:11:01 ) ) ) 0 a
    1 b
    2 c
    3 d
    4 e
    5 f
    6 g
     
  10. ZEXEL

    ZEXEL Elder - Старейшина

    Joined:
    7 Jan 2008
    Messages:
    351
    Likes Received:
    193
    Reputations:
    3
    Нужна попощь по скобкам !
    php code :
    Получаеться:
    А нужно:
     
  11. mailbrush

    mailbrush Well-Known Member

    Joined:
    24 Jun 2008
    Messages:
    1,997
    Likes Received:
    996
    Reputations:
    155
    PHP:
    echo '<tr><td>Скачать:</td><td><a href="site.ru///var/tmp/phpfEZEw1"></a></td></tr><br>';
     
  12. ZEXEL

    ZEXEL Elder - Старейшина

    Joined:
    7 Jan 2008
    Messages:
    351
    Likes Received:
    193
    Reputations:
    3
    Не то,

    $s['adress'] - ету переменную нужно туда впихнуть, посмотри первый пример
     
    4 people like this.
  13. mailbrush

    mailbrush Well-Known Member

    Joined:
    24 Jun 2008
    Messages:
    1,997
    Likes Received:
    996
    Reputations:
    155
    PHP:
     echo '<tr><td>Скачать:</td><td><a href="site.ru//'.$s['adress'].'"></a></td></tr><br>'
     
    2 people like this.
  14. zifanchuck

    zifanchuck Elder - Старейшина

    Joined:
    27 Oct 2008
    Messages:
    396
    Likes Received:
    154
    Reputations:
    3
    Привет всем. Как на пхп посчитать допустим сумму двох двоичных чисел?) я чето гуглю но чето ничего не нашел( гуглить время нет а код очень нужен. зарание огромное спасибо
     
  15. Epic wave

    Epic wave Member

    Joined:
    15 Mar 2009
    Messages:
    105
    Likes Received:
    72
    Reputations:
    -1
    base_convert не?
     
  16. zifanchuck

    zifanchuck Elder - Старейшина

    Joined:
    27 Oct 2008
    Messages:
    396
    Likes Received:
    154
    Reputations:
    3
    сорри щас туплю (заболел) но ета функция вроде для конвертирование одной системе в другую. а мне надо чтобы сумировать отнимать и т.д. думал может нужно написать число и в скобках какая система но выдало ошибку.
     
  17. zifanchuck

    zifanchuck Elder - Старейшина

    Joined:
    27 Oct 2008
    Messages:
    396
    Likes Received:
    154
    Reputations:
    3
    хз чето туплю.
    вот делаю так
    PHP:
    <?php
    $a 
    101001101011;
    $b 101001;
    $result = (bool)$a + (bool)$b;
    echo 
    $result;
    ?>
    в ответ получаю 2
     
  18. Epic wave

    Epic wave Member

    Joined:
    15 Mar 2009
    Messages:
    105
    Likes Received:
    72
    Reputations:
    -1
    логично, оба bool по единице возвращают.
     
  19. zifanchuck

    zifanchuck Elder - Старейшина

    Joined:
    27 Oct 2008
    Messages:
    396
    Likes Received:
    154
    Reputations:
    3
    короче незнаю правильно или нет но попробовал сделать так.

    PHP:
    <?php
    $hexadecimal 
    '1101';
    $a base_convert($hexadecimal210);
    $hexadecimal '101';
    $b base_convert($hexadecimal210);
    $result $a $b;
    $c base_convert($result102);
    echo 
    $c;
    ?>
    вроде работает норм. а нету более рационального способа?
     
  20. Gray_Wolf

    Gray_Wolf Active Member

    Joined:
    7 Mar 2009
    Messages:
    377
    Likes Received:
    135
    Reputations:
    10
    Ну тогда уж лучше так:
    PHP:
    <?php
    $hexadecimal 
    '1101';
    $a decbin($hexadecimal);
    $hexadecimal '101';
    $b decbin($hexadecimal);
    $result $a $b;
    printf ("%b",$result);
    ?> 
    Но тут мы результат не переводим в двоичный вид, а просто выводим на экран в двоичном...
     
Thread Status:
Not open for further replies.