Профиль пользователя заблокирован сроком с 17 августа 2021 г. и навсегда по причине: см. п. 8.3 правил Сервиса
  • Знак вопроса в Sublime text 3?

    Вопросительные знаки в gutter Sublime Text показывает плагин BracketHighlighter, если
    1. Есть открывающая скобка, кавычка или тег, но нет закрывающих или наоборот.
    2. Расстояние между открывающими и закрывающими скобками, кавычками, а обычно тегами составляет более 5000 символов. Как объяснил разработчик, это сделано затем, что компьютер может подвисать, когда расстояние больше.

    Ограничение в 5000 символов можно убрать. PreferencesPackage SettingsBracketHighlighterBracket Settings - User → в открывшийся файл вставляем одну из следующих строк. Будьте внимательны с JSON-синтаксисом, расставляйте правильно знаки препинания.

    1) "search_threshold": 20000,

    5000 символов маловато, цифра увеличивается параметром search_threshold . 20000 установил пользователь Sublime Text quodlibet.

    2) "ignore_threshold": true,

    Сколько символов бы не располагалось между открывающим и закрывающим тегами, в gutter отобразится символ, назначенный тегам в BracketHighlighter, а не вопросительный знак. я тестировал "ignore_threshold": true, на больших файлах — подвисаний не обнаружил. Как обстоит дело на не самых мощных компьютерах, сказать не берусь.

    Было:

    XtXHd1c.png

    Стало:

    AlU5lYs.png

    Чтобы вместо символов BracketHighlighter не отображались вопросительные знаки, код должен быть валидным: так, на HTML-странице не должно содержаться незакрытых тегов или наоборот открывающих тегов без закрывающих. У меня вопросительные знаки появились из-за лишнего слэша в теге <a>: <a href="http://example.com"/>Sasha Zeitgeist</a> вместо <a href="http://example.com">Sasha Zeitgeist</a>.

    Для валидации HTML прямо в Sublime Text существуют плагины SublimeLinter3 и SublimeLinter-html-tidy . Об их установке я расписал здесь. Как установить линтеры для CSS, JavaScript и PHP см. статью на Хабрахабре.

    Спасибо.

    Ответ написан
    Комментировать
  • Как передать в переменную текст из адресной строки?

    window.location.hash получишь #2021, и метод window.location.hash.substring(1) можно получить 2021
    Ответ написан
    Комментировать
  • Видит ли сисадмин, что я делаю на рабочем компьютере?

    Zoominger
    @Zoominger Куратор тега Системное администрирование
    System Integrator
    Если настроен какой-нибудь DameWare Remote Desktop, то да.
    Аналогично - если установлено ПО для отслеживания действий пользователя, например, Staffcop.
    Можно ещё анализировать сетевой трафик, если на роутере настроено сканирование HTTPS-трафика.

    Но всё это довольно сложное дело. Позвоните, скажите, что у вас курсач завис, попросите подключиться удалённо и смотрите, видно ли что-то, когда он подключается? Если да - бойтесь, ведь он может подключиться в любой момент, если нет - бойтесь сильнее, ведь 100% своего времени админ только и делает, что следит за вами.
    Ответ написан
    2 комментария
  • Как вирусы могут и не могут попасть на пк?

    @Konf
    Редактирую ответы на 2 + 2 по 4 раза
    Единственное в чём я полностью согласен с текущими ответами, так это с вот этой фразой:
    На этот вопрос не получится дать краткий и ёмкий ответ, много нюансов

    Всё же, я пройдусь по каждому вопросу и утверждению попроще, и в то же время поподробнее, но сначала надо кое-что уточнить:
    А что такое вирус? Гугл выдаст на этот вопрос не совсем понятный ответ, поэтому в рамках этого вопроса я обозначу вирус как вредоносный КОД, цель которого - принести прибыль создателю в ущерб пользователю. На компьютере воспроизводится много разного кода, и лишь в редких случаях, при определённых действиях можно наткнуться на вредоносный.

    Даже здесь в одном из ответов советуют установить расширение NoScript, которое, проще говоря, будет выключать всю часть кода, которая отвечает за сборку всех web-страниц. Не стоит следовать такому совету.

    Кто-то говорит на сайт зашел - вирус подхватил
    - Под фразой "зашёл на сайт" можно иметь в виду несколько совершенно разных действий, но, в целом, любое из этих действий может обернуться чем-то более или менее неприятным.
    1. Просто открыть сайт в браузере и больше ничего не нажимать. Что может сделать злой владелец сайта?

      Что-то из этого:
      - попробовать убедить кликнуть куда-нибудь;
      - включить майнер*, который будет существовать только тогда когда будет открыт этот сайт;
      - взять интернет-идентификатор компьютера (IP) и начать слать в его адрес много-много запросов чтобы у пользователя просто по приколу перестал работать интернет на какое-то время;
      - включить страшное громкое видео.

      *майнер - вредоносный код, использующий ресурсы ПК с целью добычи криптовалюты

      В 99.999% случаев абсолютно любых сайтов произойдёт первый подпункт. Остальные - просто для ознакомления. Есть ещё один подпункт, который я не включил в этот список, - большие уязвимости в браузере или в операционной системе, которые позволяют обходить все запреты, которые браузер применяет к коду владельцев сайтов. Такие уязвимости могут позволять сразу делать то, о чём пойдёт речь ниже, но на практике, столкнуться с такой уязвимостью равно шансу выиграть в очень большую лотерею, и чем чаще обновляется система и браузер, тем меньше этот шанс.

    2. Куда-нибудь кликнуть / нажать кнопку на клавиатуре

      Такое действие уже может начать загрузку какого-нибудь файла на компьютер или подписать на платную SMS-рассылку, если сайт открыл смартфон через мобильный интернет. Однако, без паники. От рассылки можно отписаться, а файл сам по себе не откроется, если на него не нажимать.

      Те, кто далёк от мира компьютеров, от недостатка опыта просто не различают когда экран им показывает содержимое сайта, а когда - браузерные события. Но обычно браузер имеет какую-то конкретную анимацию когда загружает файл, и если есть подозрения на то что сайт начал грузить какой-то не такой файл, особенно если это сайт, который делает что-то быстро и бесплатно, то стоит аккуратно открыть папку загрузок, адрес которой можно узнать в настройках браузера, и удалить оттуда файл.

      Также, не стоит сразу кликать на цветные кнопки в специфичных модальных окнах браузера, которые разрешают сайту делать уведомления или качать файлы без спроса. Стоит для начала всё внимательно прочитать чтобы понять что есть какая-то логическая несостыковка

      60bc92728788d972345161.jpeg

    3. Активное использование
      В целом, нет никакой разницы между возможностями злых кодеров для этого пункта и для прошлого, но такой пункт может означать кое-что тревожное - вы поверили такому сайту. Есть много сайтов, цель которых - обмануть пользователя и заставить ввести на таком сайте приватные данные, предназначенные для надёжных сайтов. Они делают адрес и дизайн сайта очень похожими на оригинал, они делают много длинных психологических цепочек, которые заставляют пользователя думать, что всё то что происходит на сайте - реально, когда на самом деле ему обещают деньги, но просят заплатить за их доставку. Как быть в таком случае? Нужно перестать доверять всему что пишут в интернете.

    Что будет если всё же открыть тот файл, который был скачан?
    Если в операционной системе нет никакой защиты-предупреждения перед тем как файл откроется, то таким образом на плохо настроенной системе можно одним кликом установить на компьютер самозапускающийся код, который сможет делать почти все вышеперечисленные действия, и даже больше - блокировать компьютер или удалять файлы безвозвратно, вымогая за них деньги. При этом, в отличии от браузера, никаких визуальных анимаций может не быть вовсе, и уж тем более кнопок "Вернуть назад".

    В целом, ситуация по "вирусам" в интернете умеренная, если знать куда можно нажимать, а куда не стоит. На данном этапе, из рекламы Yandex.ru можно попасть в интернет-магазин, который никогда не отправит товар и не вернёт деньги, а из выдачи Google.com можно легко попасть на вредоносный сайт, который не будет содержать в себе ничего кроме кнопок как на скриншоте выше, и будет показывать эти кнопки до тех пор, пока пользователь не согласится, но лично я уже давно даже никакие антивирусы не использую, так как поверхностно знаю как это всё устроено.
    Ответ написан
    3 комментария
  • Есть ли список пользователей, которые общались с моим ботом?

    @Konf
    Редактирую ответы на 2 + 2 по 4 раза
    Есть ли список пользователей, которые общались с моим ботом?

    Вроде нет такого, но если прям сильно нужно, то есть один непроверенный способ, который за месяц брутфорса может помочь собрать такой список:

    В Telegram есть фишка: бот может создавать где угодно прямые ссылки на юзеров (упоминания) по их айди, но только если эти юзеры писали боту раньше
    60dce976e0677916879390.png
    Значит, в теории, мы можем написать скрипт, который будет отправлять в какую-нибудь группу, но лучше в личные сообщения (так быстрее), кучу сообщений с упоминаниями всех пользователей,
    начиная с 100 000 000 и заканчивая, например, 4 000 000 000.

    Почему именно эти числа? Я взглянул на айди своего аккаунта в Телеграме, который был зарегистрирован ~3 года назад, и его айди = 362 *** ***. Затем я взглянул на аккаунт, который был зарегистрирован примерно год назад, и его айди = 1 700 *** ***. Судя по тому как быстро в телеграм регистрируются новые аккаунты, я думаю сейчас там около четырёх миллиардов аккаунтов, но это можно легко проверить наверняка, если узнать айди какого-нибудь новорега.

    Итак, что мы имеем? Лимиты Телеграма можно увидеть тут, а значит вот все известные переменные:

    4 000 000 000 – айди нужно проверить
    30 сообщений в секунду – бот может отправить в личные сообщения (20 - в группу)
    67 – максимальное количество упоминаний в одном сообщении (проверено мной только что)

    30 * 67 * 60 = 120 600 – количество проверенных юзеров в минуту
    4 000 000 000 / 120 600 = 33168 – минут для проверки всех пользователей
    60 * 24 = 1440 – минут в сутках
    33168 / 1440 = 23 – минимальное количество суток безостановочной работы бота, для того чтобы сделать полную проверку. Учитывая что бот ещё будет параллельно отвечать пользователям, проверка займёт чуть больше времени

    p.s. Способ придуман только что, и может содержать ошибки в расчётах и подводные камни в виде скрытых ограничений телеграма, которые замедлят, либо вообще сделают невозможным данный способ

    p.p.s. Позже я понял что можно одновременно отправлять проверочные сообщения и в личку, и в группу, и тогда скорость будет 50 сообщений в секунду, и проверка, в теории, займёт 14 дней
    Ответ написан
  • Как можно достать следующий и предыдущий элемент относительно $array[$i]?

    @Drayde
    function get($action, $i, $array){
    	$result = '';
    
    	if ( $action == 'left' ) {
    		$result = ( $i == 0 ) ? $array[count($array)] : $array[$i--];
    	} else {
    		$result = ( $i == count($array) ) ? $array[0] : $array[$i++];
    	}
    
    	return $result;
    }
    Ответ написан
    9 комментариев
  • Существуют ли сервисы, отдающие цены по штрихкоду?

    MANAB
    @MANAB
    Разрабатываю на C#: Web, Desktop, Gamedev
    Даже в рамках одной сети магазинов один и тот же товар даже в одном городе может иметь разные цены.
    В общем, не слышал про такие сервисы и не верю в возможность их существования.
    Ответ написан
    3 комментария
  • Как на сервере по get запросу закрывать нужные checkbox?

    ThunderCat
    @ThunderCat Куратор тега Веб-разработка
    {PHP, MySql, HTML, JS, CSS} developer
    В пхп есть замечательный метод empty(), да и иф тут лишний, тернарника достаточно.
    <?=(!empty($_GET['status']) && in_array('Завершён', $_GET['status']))?'checked':'';?>

    Есть варианты когда таких одинаковых проверок много, тогда есть смысл сначала проверить существует ли $_GET['status'], и если нет - присвоить $_GET['status'] = [], тогда проверка на емпти будет не нужна, но это больше частный случай...
    Ответ написан
    6 комментариев
  • Возможно ли в строке писать переменные с ключами?

    sabramovskikh
    @sabramovskikh
    Оберните фигурными скобками
    foreach ($orders['entries'] as $o) {
    $htmlorder[] = "<td class='id'>{$o['_id']}</td>";
    }
    Ответ написан
    3 комментария
  • Как проверить наличие массива в json?

    delphinpro
    @delphinpro Куратор тега JavaScript
    frontend developer
    if (result?.validate) {
      // есть ошибки
    }
    Ответ написан
    3 комментария
  • Как в MongoDB получить несколько записей с разными?

    @kirillinyakin
    Хм, я пока что не разбираюсь в MongoDB, но возможно вместо $and надо написать $or
    Ответ написан
    2 комментария
  • Как удалить из многомерного массива?

    @IS-Builder
    ~ PHP-8 & REGEXP - This is a really powerful kit ~
    Перебором в цикле до первого соответствия:
    spoiler
    $arr = [
        ["Orange", "medium"],
        ["Orange", "big"],
        ["Apple", "big"],
        ["Banane", false],
        ["Apple", "big"],
    ];
     
    $search = ["Apple", "big"];
     
    foreach ($arr as $k => $a) {
        if ($a === $search) {
            unset($arr[$k]);
            break;
        }
    }
     
    var_dump($arr);
    Ответ написан
    2 комментария
  • Как из двух массивов образовать новый, взяв часть данных?

    0xD34F
    @0xD34F
    Такое вообще возможно?

    Нет, блин. Невозможно.

    $items = array_combine(
      array_column($arr2['entries'], 'name_item'),
      $arr2['entries']
    );
    
    $keys = [ 'price_item', 'image_item' ];
    
    foreach ($arr1 as $n) {
      foreach ($keys as $k) {
        $n[$k] = $items[$n[0]][$k];
      }
    
      $arr3[] = $n;
    }

    Ответ написан
    Комментировать
  • Как удалить из строки все html теги?

    rozhnev
    @rozhnev Куратор тега PHP
    Fullstack programmer, DBA, медленно, дорого
    Например так:
    <?php
    $str = "Яблоко, Апельсин, <br>Киви, <u>Молоко</u>, <a src='//'>ссылка</a>";
    
    echo strip_tags($str);


    PHP code online
    Ответ написан
    Комментировать
  • Как удалить из строки все html теги?

    igor-fedorov
    @igor-fedorov
    Full Stack разработчик
    С помощью функции strip_tags:

    strip_tags($string);

    По-умолчанию из строки будут удалены все теги, но вторым аргументом можно передать теги, которые останутся в строке.

    https://www.php.net/manual/ru/function.strip-tags.php
    Ответ написан
    Комментировать
  • Как запустить Cockpit на OpenServer?

    wagoodoogoo
    @wagoodoogoo
    prestashop, webix, phalcon, vue, slim, craft cms
    У вас не хватает mod_version модуля для Apache. В Openserver это быстро можно сделать в меню Дополнительно -> Конфигурация -> ваша настроенная конфигурация Apache. Конфигурация откроется в блокноте, и там раскоментировать строку
    #LoadModule   version_module          modules/mod_version.so
    Ответ написан
    2 комментария
  • Как указать дефолтное значение переменной в функции?

    sergiks
    @sergiks Куратор тега PHP
    ♬♬
    в PHP 8 можно так:
    function sa($a, $b = 3, $c = 5) {
      echo $a;
      echo $b;
      echo $c;
    }
    
    sa("gaga", c: "boba"); // gaga3boba
    см. Именованные аргументы

    Начиная с PHP 7.0 можно проверять значения на null и подставлять дефолты:
    function sa($a, $b, $c) {
        $b ??= 3; // если NULL, то станет 3
        $c ??= 5;
        // echo ...
    }
    
    sa("gaga", null ,"boba");
    см. Null coalescing
    Ответ написан
    Комментировать
  • Насколько пригодна программа Shapr3D для профессионалов?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Обычно действуют иначе: находят заказ и под него находят инструменты
    Ответ написан
    Комментировать
  • Почему не отправляется сообщение на почту через phpmailer?

    @galaxy
    $mail->Port = 993;
    993 - это порт для IMAP
    Для SMTP у них 465
    Ответ написан
    Комментировать
  • Насколько практично использовать такой метод?

    Get-Web
    @Get-Web Куратор тега CSS
    Front-End Developer
    Не очень удачное решение..
    Во-первых анимация не бесконечна, во-вторых это явно повлияет на производительность.

    Изучите этот пример, возможно он вам поможет найти более подходящее решение
    Ответ написан
    2 комментария