Ответы пользователя по тегу PHP
  • Как получить JSON tree?

    @Next_Alex
    Проблема не в json_encode, а в запросе к базе. В результате выполнения запрооса к базе ты получаешь плоский массив, который конечно же преобразуется в плоский json. Добейся сначала получения массива правильной структуры, а потом уже конвертируй.
    Ответ написан
    Комментировать
  • SIP звонок-уведомление на php

    @Next_Alex
    Кажется неплохим выходом будет GSM-модем с поддержкой голоса и вот такое решение с небольшими изменениями.
    Ответ написан
  • Не работает php в режиме CLI. Как определить причину?

    @Next_Alex
    Если человеку нужна помощь — он пытается дать помогающим максимум информации о проблеме.
    Если же человеку не нужна помощь — он решает проблему самостоятельно, не впутывая никого в этот процесс.
    Если в качестве помощников выступают телепаты, то возможны комбинации.

    Внимание, вопрос!
    Никита, тебе нужна помощь или ты в состоянии сам решить проблему?
    Ответ написан
  • Не работает php в режиме CLI. Как определить причину?

    @Next_Alex
    а он молча вылетает?
    и что конкретно подразумевается по «вылетает»?
    Ответ написан
  • Php, console, параметры?

    @Next_Alex
    Я делал вот так:
    Немного переработанный метод, найденный в сети:
    function parseArgs( $_SERVER, $_REQUEST )
    {
       $out = array();
       if ( is_array( $_SERVER ) && is_array( $_REQUEST ) )
       {
          $cli_args = isset( $_SERVER[ 'argv' ] ) ? $_SERVER[ 'argv' ] : array();
          if ( count( $cli_args ) > 1 )
          {
             array_shift( $cli_args );
             foreach ( $cli_args as $arg )
             {
                // --foo --bar=baz
                if ( substr( $arg, 0, 2 ) == '--' )
                {
                   $eqPos                  = strpos( $arg, '=' );
                   // --foo
                   if ( $eqPos === false )
                   {
                      $key                = substr( $arg, 2 );
                      $value              = isset( $out[ $key ] ) ? $out[ $key ] : true;
                      $out[ $key ]          = $value;
                   }
                   // --bar=baz
                   else
                   {
                      $key                = substr( $arg, 2, $eqPos - 2 );
                      $value              = substr( $arg, $eqPos + 1 );
                      $out[ $key ]          = $value;
                   }
                }
                // -k=value -abc
                else if ( substr( $arg, 0, 1 ) == '-' )
                {
                   // -k=value
                   if ( substr( $arg, 2, 1 ) == '=' )
                   {
                      $key                = substr( $arg, 1, 1 );
                      $value              = substr( $arg, 3 );
                      $out[ $key ]          = $value;
                   }
                   // -abc
                   else
                   {
                      $chars              = str_split( substr( $arg, 1 ) );
                      foreach ( $chars as $char )
                      {
                         $key            = $char;
                         $value          = isset( $out[ $key ] ) ? $out[ $key ] : true;
                         $out[ $key ]      = $value;
                      }
                   }
                }
                // plain-arg
                else
                {
                   $value                  = $arg;
                   $out[]                  = $value;
                }
             }
          }
          else
          {
             if ( count( $_REQUEST ) > 0 )
             {
                foreach ( $_REQUEST as $key => $value )
                {
                   $out[ $key ] = $value;
                }
             }
          }
       }
       return $out;
    }


    он разбирает все что передано скрипту при запуске через POST, GET либо аргументы командной строки и запихивает в возвращаемый массив. Сам метод живет в отдельном инклюднике.
    И, соответственно, разбор аргументов в самом скрипте:

    $arguments = parseArgs( $_SERVER, $_REQUEST );


    Вызов из консоли вот такой ( хотя в принципе все ясно из кода ):
    php myscript.php --firstarg=somedata -anotherarg=anotherdata --justaflag -anotherflag plainanarg
    Ответ написан
    1 комментарий
  • Как отучить стажёра от говнокода?

    @Next_Alex
    Собственно самым эффективным всегда был удар по зарплате. Если нет возможности ввести штрафы за говнокод и перерасход времени на бред, то я бы попробовал затащить его на пиво и в непринужденной обстановке выведать что к чему, попытаться переубедить ( или просто заинтересовать в написании нормального кода, хотя бы на «слабо» ), ну и если необучаемый, то на воздух.
    Ответ написан
    1 комментарий