• Это вообще люди делают?

    dimovich85
    @dimovich85 Куратор тега CSS
    https://u-academy.net/
    Поделюсь с вами вот такой ссылкой:
    https://www.youtube.com/playlist?list=PLswdBLT9llb...
    Ответ написан
    1 комментарий
  • Как пробросить внутренний номер аналоговой АТС в Asterisk?

    @Komrus
    CIO
    Если Гугл не врёт, то DAG2000-16S - это VoIP шлюз с портами FXS (т.е. в аналоговыми портами, которые сами "гудят" в линию)/ Предназначен для подключения аналоговых телефонных аппаратов.

    И у офисной АТС внутренние порты - это тоже FXS

    Соединять аналоговые порты телефонных линий надо FXS - FXO. (один - гудит в линию, второй - ждёт гудок)

    Т.е. - в Вашем случае нужен шлюз в портами FXO
    Ответ написан
    Комментировать
  • Как отследить письмо и защищить от спама?

    Anna_Komok
    @Anna_Komok
    Маркетолог в Fotostrana.ru
    1. Нет, не правда
    2. Не обязательно, но в почте на домене есть много преимуществ. Например, возможность прописать DKIM, DMARC и SPF. Сразу появиться возможность отслеживать письма через постмастер и делать рассылки через специальные сервисы (mailchimp, unisender и т.п.). Они позволяют видеть не только статистику открытий, спам, но и другие полезные вещи - перешел ли человек по ссылке, почему не дошло письмо, может адрес не существует или ящик переполнен и т.п.
    3. Почту на спамность можно проверить на mxtoolbox.com, но сервис работает только с почтой на домене.
    4. Для постмастера нужна почта на домене т.к. владение доменом нужно подтвердить, разместив специальный код на сайте или сделав запись в DNS.
    Сейчас, с почтой site@gmail.com, можно отслеживать открыли ваше письмо или нет с помощью специальных расширений для Google Chrome. Например, Streak.
    Ответ написан
    Комментировать
  • $$$ что значит в php?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега PHP
    Это называется переменная с переменным именем (variable variable).

    class Foo {
      public $deepest = 'Limbo';
      
      public function __toString()
      {
        return 'deep';
      }
    }
    
    $deeper = 'deepest';
    $deep = 'deeper';
    $b = new Foo();
    
    echo $b->$$$b;


    Выражение выполняется справа налево:
    1. $b->$$($b) превращается в $b->$$($b->__toString()), поскольку именно так ведут себя объекты, когда на них пытаются натравить echo;
    2. $b->$$($b->__toString()) превращается в $b->$(${'deep'}), именно это значение возвращает метод __toString класса Foo, инстансом которого является $b;
    3. $b->$(${'deep'}) превращается в $b->$($deep), это как раз вызов переменной при помощи значения из другой переменной;
    4. $b->$($deep) превращается в $b->${'deeper'}, поскольку именно такое значение находится в переменной $deep;
    5. $b->${'deeper'} превращается в $b->($deeper);
    6. $b->($deeper) превращается в $b->deepest;
    7. наконец, получается значение свойства 'deepest' из $b, а там как раз хранится 'Limbo', оно и выводится в echo.

    dd178a12658f41679b71884846669132.jpg
    Ответ написан
    8 комментариев