Все сервисы Хабра

Сообщество IT-специалистов

Ответы на любые вопросы об IT

Профессиональное развитие в IT

Удаленная работа для IT-специалистов

Войти на сайт
  • Все вопросы
  • Все теги
  • Пользователи

Хабр Q&A — вопросы и ответы для IT-специалистов

Получайте ответы на вопросы по любой теме из области IT от специалистов в этой теме.

Узнать больше
другие проекты хабра
  • Хабр
  • Карьера
  • Фриланс
Задать вопрос
SevaShpun

Seva Shpun

Developer: Python, PHP, C#, C++, NodeJS
  • 4
    вклад
  • 0
    вопросов
  • 15
    ответов
  • 20%
    решений
Лайки
  • Информация
  • Ответы
  • Вопросы
  • Комментарии
  • Подписки
  • Нравится
  • Vk api как получить сообщения из беседы?

    Stockholm Syndrome @StockholmSyndrome
    Однако это не распространяется на сообщения приходящие из беседы в которую был добавлен бот.

    неправда, LongPoll'ом можно получать сообщения из беседы, только для этого нужно, чтобы бот имел доступ ко всей переписке в беседе

    выпадает ошибка longpoll for this group is not enabled

    нужно включить LongPoll в настройках группы
    Управление -> Настройки -> Работа с API -> Long Poll API
    Ответ написан более трёх лет назад
    2 комментария
    2 комментария
  • Как создать новую переменную в цикле?

    Андрей @anerev
    for i in range(1, 4):
           print(i)
           exec(f'a{i} = []')
      print(a1, a2, a3)
    Ответ написан более двух лет назад
    3 комментария
    3 комментария
  • Какой язык программирования изучать в свободное время?

    dollar
    dollar @dollar
    Делай добро и бросай его в воду.
    Какой-то конкретной цели, объясняющей для чего мне это надо, пока что нет.

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

    Льюис Кэрролл
    Ответ написан более двух лет назад
    1 комментарий
    1 комментарий
  • Как использовать рекурсию в замыкания в языке php?

    0xD34F
    0xD34F @0xD34F
    function recursive(&$input) {
      $closure = function(&$input) use (&$closure) {
        foreach ($input as $key => &$value) {
          if (is_array($value)) {
            $closure($value);
          } else {
            echo $value;
          }
        }
      };
    
      $closure($input);
    }
    Ответ написан более двух лет назад
    1 комментарий
    1 комментарий
  • Как убрать кавычки из переменной?

    fox_12
    Владимир Куц @fox_12 Куратор тега Python
    Расставляю биты, управляю заряженными частицами
    А к чему такой колхоз?:
    a = [1, 129, 123, 64, 124, 121]
    test = 'testovaya zapis'
    
    test_print = test, ','.join([str(x) for x in a])
    print(test_print)

    ('testovaya zapis', '1,129,123,64,124,121')
    Ответ написан более двух лет назад
    Комментировать
    Комментировать
  • Как реализовать вызов одной и той же функции через n секунд?

    Dr. Bacon @bacon
    В самом простейшем случае:
    1. замени рекурсию на while
    2. правильно все-таки await asyncio.sleep(5)
    3. запускать loop.create_task(checkfile())
    ЗЫ так же можно поискать готовые библиотеки под это.
    Ответ написан более двух лет назад
    9 комментариев
    9 комментариев
  • Почему функция выполняется?

    antonksa @antonksa
    Извени... Тут ошибка:

    80lvl самотроллинга.
    Ответ написан более двух лет назад
    Комментировать
    Комментировать
  • Несколько данных из бд в одну переменную php?

    SagePtr
    SagePtr @SagePtr
    Еда - это святое
    Перед цикалом:
    $idak = [];
    А в цикале уже:
    $idak[] = $usergarem['user_id'];
    Ответ написан более двух лет назад
    2 комментария
    2 комментария
  • Как архивировать файлы на PHP?

    copist
    Павел Волынцев @copist
    Empower people to give
    Если требуется ООП, то можно сделать так на базе варианта, который предложил @vanton

    <?php
    /**
     * @see http://php.net/manual/ru/class.ziparchive.php
     */
    class MyZipArchive extends ZipArchive // унаследовал
    {
       public function addFiles($files = array()) // расширил
       {
          // ... см. http://davidwalsh.name/create-zip-php 
       }
    }
    
    $zip = new MyZipArchive;
    $zip->open($zipTmpAbsFilePath, \ZipArchive::OVERWRITE);
    $zip->addFiles(array(
      'preload-images/1.jpg',
      'rod.jpg',
    ));
    
    // ещё есть стандартные функции
    	// $zip->addGlob('path/to/files/*.*');
    	// $zip->addPattern('*.*', 'path/to/files/')
    
    $zip->close();
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как архивировать файлы на PHP?

    vanton
    Антон Ванин @vanton
    Человек и пароход
    Самый быстрый способ - использование командной строки на сервере, к примеру:
    exec("tar -cvf /full/path/to/filename.tar.gz folder_to_archive/");


    Есть еще решение от David Walsh, которое использует php класс ZipArchive, но php должен быть с поддержкой данного класса
    Ответ написан более трёх лет назад
    4 комментария
    4 комментария
  • Как найти все повторы в массиве?

    0xD34F
    0xD34F @0xD34F
    $arr = ['a','a','a','x','y','z'];
    $count = array_count_values($arr);
    
    $duplicates = array_filter($arr, function($n) use($count) {
      return $count[$n] > 1;
    });
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как получить интервал дат?

    t-alexashka
    Радость моя @t-alexashka
    Сразу пишу legacy код
    даты лучше генерить не через setTime. Есть вероятность сгенерить 30 февраля и получить ошибку. лучше что-то типа:

    $rand = mt_rand(1, 99);
    $dateStart = date('Y-m-d H:i:s', strtotime("-$rand days"));
    $dateEnd = date('Y-m-d H:i:s', strtotime("+$rand days"));


    так же если надо секунды - допишите в strtotime типа "-$rand days $rand hours $rand seconds" или определите свои $rand для каждого деления (дни часы минуты) типа $randD, $randMin, $randH и тд.

    А дальше уже с интервалами.
    Ответ написан более трёх лет назад
    14 комментариев
    14 комментариев
  • Почему библиотека RedBean убивает сайт?

    profesor08
    profesor08 @profesor08 Куратор тега PHP
    Раз ты уверен что вебсервер идентичен тому, что на локалке, его настройки и тд, то остается косяк в путях. Надо смотреть логи. Без логов это как тыкать пальцем куда-нибудь.
    Ответ написан более трёх лет назад
    4 комментария
    4 комментария
  • Какой язык программирования выбрать для написания сложного телеграмм бота?

    inoise
    Иван Шумов @inoise
    Solution Architect, AWS Certified, Serverless
    1. Любой язык в который умеете
    2. После выбора языка можно загуглить библиотеки для телеграмма или воспользоваться чисто их api (у них там все подробно написано)
    3. читать документацию и учиться программировать
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Почему перестал работать код для получения котировок валют от цб рф, ссылаясь на "failed to open stream: Redirection limit reached, aborting"?

    alexkbs
    Алексей @alexkbs
    Не ЦБ единым... Есть прокси для получения курсов ЦБ РФ без лишних заморочек, во всевозможных форматах.
    https://www.cbr-xml-daily.ru/
    https://www.cbr-xml-daily.ru/daily.xml
    https://www.cbr-xml-daily.ru/daily_utf8.xml
    https://www.cbr-xml-daily.ru/daily_eng.xml
    https://www.cbr-xml-daily.ru/daily_eng_utf8.xml
    https://www.cbr-xml-daily.ru/daily_json.js
    https://www.cbr-xml-daily.ru/daily_jsonp.js

    Работает так: (пример с сайта)
    <div id="USD">Доллар США $ — 00,0000 руб.</div>
    <div id="EUR">Евро € — 00,0000 руб.</div>
    
    <script>
    function CBR_XML_Daily_Ru(rates) {
    	var USDrate = rates.Valute.USD.Value.toFixed(4).replace('.', ',');
    	var USD = document.getElementById('USD');
    	USD.innerHTML = USD.innerHTML.replace('00,0000', USDrate);
    
    	var EURrate = rates.Valute.EUR.Value.toFixed(4).replace('.', ',');
    	var EUR = document.getElementById('EUR');
    	EUR.innerHTML = EUR.innerHTML.replace('00,0000', EURrate);
    }
    </script>
    <script src="https://www.cbr-xml-daily.ru/daily_jsonp.js"></script>

    Огромное преимущество перед выкачкой курсов в XML в том что ничего не нужно качать и парсить на стороне сервера. Ничего такого, что в другом ответе, делать не нужно. Страницы открываются много шустрее.
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
Оценили как «Нравится»
Самые активные сегодня
  • foxyhunt
    • 15 ответов
    • 0 вопросов
  • Drno
    • 14 ответов
    • 0 вопросов
  • mayton2019
    • 6 ответов
    • 0 вопросов
  • dimonchik2013
    Dimonchik
    • 6 ответов
    • 0 вопросов
  • gogowq
    • 5 ответов
    • 1 вопрос
  • alexey-m-ukolov
    Алексей Уколов
    • 6 ответов
    • 0 вопросов
  • © Habr
  • О сервисе
  • Обратная связь
  • Блог

Войдите на сайт

Чтобы задать вопрос и получить на него квалифицированный ответ.
Войти через центр авторизации