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

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

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

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

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

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

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

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

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

Exploding

wtf?
  • 339
    вклад
  • 5
    вопросов
  • 570
    ответов
  • 33%
    решений
Лайки
  • Информация
  • Ответы
  • Вопросы
  • Комментарии
  • Подписки
  • Нравится
  • Достижения
  • Как получить список таблиц и полей без индекса (mysql), по которым происходит выбор?

    Vitaly Karasik @vitaly_il1
    DevOps Consulting
    Посмотрите https://www.percona.com/doc/percona-toolkit/LATEST...
    Ответ написан более года назад
    Комментировать
    Комментировать
  • Как вытащить адрес почты из тела письма и отправить на него стандартный ответ?

    Amunrah
    Николай В @Amunrah Автор вопроса
    Сказочный персонаж ))
    Короче решил вопрос. Оставлю тут, вдруг кому пригодится.

    В общем сделал табличку с двумя одинаковыми листами (Новые и Обработанные) вида:
    61154258cbce4938784054.png

    И написал следующий код:
    var name, email, phone;
    name = email = phone = 'None';
    
    function getEmails(){
      var threads = GmailApp.search('label:Заявка');
    
      if (threads.length) {
        for (var i=0; i < threads.length; i++) {
          var messages = threads[i].getMessages();
          for (var j=0; j < messages.length; j++) {
            var message = messages[j];
            message.markRead(); 
            extractDetails(message);
          }
          getSheetData();
          threads[i].removeLabel(GmailApp.getUserLabelByName("Заявка"));
          threads[i].addLabel(GmailApp.getUserLabelByName("Обработано"));
        }    
      } else {}
    }
    
    function extractDetails(message){
      var dateTime = message.getDate();
      searchInBody(message.getPlainBody());
      var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
      var activeSheet = SpreadsheetApp.setActiveSheet(spreadsheet.getSheetByName("Новые"));
      activeSheet.appendRow([dateTime, name, email, phone]);
    }
    
    function searchInBody(mes) {
      var lines, subline;
      lines = mes.split("\n");
    
      for (index = 0; index < lines.length; ++index) {
        if(lines[index].indexOf('Name:') + 1) {
          subline = lines[index].split(":");
          name = subline[1].toString().trim();
        }
        if(lines[index].indexOf('Email:') + 1) {
          subline = lines[index].split(":");
          email = subline[1].toString().trim();  
        }
        if(lines[index].indexOf('Phone:') + 1) {
          subline = lines[index].split(":");
          phone = subline[1].toString().trim().slice(1,);
        }
      }
    }
    
    function getSheetData() {
      var re = /\S+@\S+\.\S+/;
      var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
      var sheet = SpreadsheetApp.setActiveSheet(spreadsheet.getSheetByName("Новые"));
      var data = sheet.getRange('A2:F').getValues();
      sheet.getRange('A2:F').clearContent();
      
      data.forEach(row => {
        if (row[2] !== '' && re.test(row[2])) {
          sendMail();
        } else {}
      })
    
      var sheet1 = SpreadsheetApp.setActiveSheet(spreadsheet.getSheetByName("Обработанные"));
      var row = data.length;
      var column = data[0].length;
      sheet1.getRange(sheet1.getLastRow()+1, 1, row, column).setValues(data);
    }
    
    function sendMail() {
      var html = 'Здравствуйте '+name+'!<br><br>Ваша заявка принята, наш специалист скоро свяжется с вами.<br><br>Спасибо за обращение.';  
      var recipientsTO = email;
      var recipientsCC = email;
      var Subject = "Ваша заявка принята";
      
      MailApp.sendEmail({
        to: recipientsTO,
        cc: recipientsCC,
        subject: Subject,
        htmlBody: html
      });
    }

    Дал ему нужные разрешения и поставил расписание. Код сыроват и далековат от оптимального, но пока все работает.
    Ответ написан более двух лет назад
    Комментировать
    Комментировать
  • При скроле не появляется шапка. Код на jQuery. Может что-то не дописал?

    PhoenixX33i
    I Phoenix I @PhoenixX33i
    Попробуйте использовать position: sticky и top: 0px к nav или header.
    Подробнее о position: sticky
    Пример navbar'a с использованием position: sticky ...
    Ответ написан более двух лет назад
    Комментировать
    Комментировать
  • Накрутка трафика из ПС - бесполезно или полезно?

    opium
    Пума Тайланд @opium
    Просто люблю качественно работать
    Если вы в этом не разбираетесь то нет смысла покупать, если разбираетесь то сами и гоните этот трафик
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Мультизагрузка картинок с добавлением на сервер и в БД. Как сделать?

    FanatPHP
    FanatPHP @FanatPHP
    Чебуратор тега РНР
    Лет ми гоогле ит фор ю: пишешь в адресной строке своего бразера три слова: Мультизагрузка картинок php и нажимаешь Ентер. На открывшейся странице будут ссылки на страницы, объясняющие, как делать мультизагрузку.

    После того как освоишь загрузку, пишешь в адресной строке своего бразера три слова: запись в БД php и нажимаешь Ентер.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Скрипт проверка емаил адреса на существование, есть что-то подобное?

    AUser0 @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Самое простое - fsockopen() на 25-ый порт MX-записи для указанного email-а, и попытка доставить письмо (RCPT TO). Если ящик существует - сервер ответит "250 OK" (или что-нибудь из ошибок 450/451/452 в качестве борьбы со спамом).

    Но надо учитывать, что такая проверка может затянуться на несколько десятков секунд, играют вообще существование и скорость работы почтовика...
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как вызвать меню поделиться на Android и iOs?

    SmthTo
    Rustam Bainazarov @SmthTo
    Все перепёлки мира будут оплакивать мою смерть.
    Работает только в достаточно новых браузерах:
    https://developer.mozilla.org/en-US/docs/Web/API/N...

    navigator.share({
        title: 'Дратути!', // Заголовок
        text: 'Здарова, бандиты!', // Текст
        url: 'https://bandits.org', // ссылка
      });




    Вызывает сие меню:
    5da50ff7eef8c058469535.png

    И весьма недурно отправляет, например, в Telegram:
    5da51132ed1bb810581709.jpeg

    ~ ~ ~

    На примере data-атрибутов:
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как объединить элементы массива, чтобы получить строку?

    glaphire
    Daria Motorina @glaphire Куратор тега PHP
    PHP developer
    У Вас немного невалидные входные данные - повторяющийся ключ name в массиве books, я поправила и вывод такой:
    <?php
    $autors = [
        'Толстой Л.Н.' => [
            'info' => [
                'birthday' => 1828,
                'mail' => 'tolstoy@pochta.net'
            ],
    
            'books' => [
                ['name' => 'Семейное счастье', 'date' => 1859],
                ['name' => 'Война и мир', 'date' => 1869],
                ['name' => 'Анна Каренина', 'date' => 1877],
            ]
        ]
    ];
    
    $author = array_keys($autors)[0];
    
    $string1 = key($autors)
        . " " . $autors[$author]["info"]["mail"]
        . " " . $autors[$author]["info"]["birthday"];
    
    $string2 = $autors[$author]["books"][1]["name"]
        . " " . $autors[$author]["books"][1]["date"]
        . " " . $author;
    
    echo $string1 . PHP_EOL;
    //Толстой Л.Н. tolstoy@pochta.net 1828
    echo $string2 . PHP_EOL;
    //Война и мир 1869 Толстой Л.Н.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как сделать ответ от php в ajax до завершения выполнения php кода?

    prostoprofan @prostoprofan
    Используйте задачи (крон), например вставляйте в таблицу задачи и временную метку когда задачу надо выполнить, тогда вопрос будет решен
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как сделать игру на JavaScript?

    webinar
    Максим Тимофеев @webinar
    Учим yii: https://youtu.be/-WRMlGHLgRg
    Здравствуйте, у меня возникла идея о создании полноценной игры-стратегии, написанной на JavaScript.

    почему именно на JavaScript? Это не самый удачный язык для написания сложных игр.

    для создания игры-стратегии для разных устройств на языке JS (возможно в браузере)

    так браузерную или нет? Или кроссплатформенную? Нет ничего хуже для проекта, чем отсутствие ТЗ. Вы вначале определитесь с ТЗ, потом выбирайте инструменты.

    что лучше мне использовать

    подходящий под ТЗ язык и движок подходящий под него и игру.

    Я бы хотел услышать ваши советы

    не стоит этим заниматься на том уровне знаний, на котором Вы сейчас находитесь. Надо вначале хорошо освоить js. Возможно Вам стало скучно, но поверьте там в игрострое не веселее. Не путайте "придумывать игры" и "делать игры". Там все так же скучно, но сложнее в разы, чем то чем Вы сейчас занимаетесь.
    Ответ написан более трёх лет назад
    7 комментариев
    7 комментариев
  • Какая структура БД системы заказов в досках объявлений?

    flapflapjack
    Талян @flapflapjack
    на треть я прав
    Думаю в Order столбец Price лишний, он уже есть в Product, и может рассчитываться при запросе.
    Ответ написан более трёх лет назад
    5 комментариев
    5 комментариев
  • Как изменить стили всех элементов, кроме того, на котором hover?

    delphinpro
    Сергей delphinpro @delphinpro Куратор тега JavaScript
    frontend developer
    https://codepen.io/anon/pen/ZPBjOq

    Если прямо приспичило на js, то https://codepen.io/anon/pen/rRWrMo
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Как сделать чтобы placeholder не исчезал, а перемещался вверх при заполнении поля?

    Ankhena
    Ankhena @Ankhena Куратор тега CSS
    Нежно люблю верстку
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Разъехалось меню после перехода на https?

    Юпитер Макс @vardoLP
    Ват ю сэй эбаут май мама?!
    вам нужно к этой картинке прописать адрес с https 5c79f881a3646831567758.png
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Что делать если стал белый фон,и как сделать что бы хедер был открыт,а не сразу был скрыт и потом его можно было открыть?

    flapflapjack
    Талян @flapflapjack
    на треть я прав
    Пипец, из глаз кровь пошла!

    $('.menu').toggleClass('menu_active');
    ни о чем не говорит? Даже знаний JavaScript не надо - тут прямо словами написано - Toggle Class.

    Добавьте к диву с классом menu класс menu_active, и оно так же его будет тогглить.
    Фон пропал потому что у вас пути не прописаны до фона. Раз не умеете относительный путь прописывать, пишите полный.



    Я свои картинки вам поставил на фон, догадаетесь как свои прописать.
    Ответ написан более трёх лет назад
    4 комментария
    4 комментария
  • Как автоматически подставить имя файла в ссылку на него?

    Stalker_RED
    Stalker_RED @Stalker_RED
    let link = document.querySelector('a'), // находим ссылку (если их несколько, придется подправить)
        fileName = link.href.split('/').pop() // href разбиваем по слешам, берем последнюю часть
    
    link.textContent = fileName // заменяем текст ссылки


    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как декодировать строку в кодировке Windows-1251 в UTF8?

    Stalker_RED
    Stalker_RED @Stalker_RED
    iconv-lite, например.
    Но вообще это ошибка на стороне сервера, и логичнее было бы исправить кодировку там.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Подсказка вылазиет за пределы экрана, как можно исправить?

    webinar
    Максим Тимофеев @webinar
    Учим yii: https://youtu.be/-WRMlGHLgRg
    вылазиет

    аж мурашки по коже

    не нашел примеров когда в роли подсказки выступает отдельный блок

    https://popper.js.org
    Ответ написан более трёх лет назад
    15 комментариев
    15 комментариев
  • Как преобразовать код?

    devellopah
    Islam Ibakaev @devellopah
    делаем красиво:

    var cond = '';
    
    var options = {
    	'cabel': 'attach a wire',
      'router': 'check your router',
      'computer': 'reload your MacBook',
      '': 'Call Technical Support, Thanks!'
    }
    
    console.log(options[cond]);


    или ещё красивее...

    function logMessage(cond) {
      
      var options = {
        'cabel': 'attach a wire',
        'router': 'check your router',
        'computer': 'reload your MacBook',
        '': 'Call Technical Support, Thanks!'
      }
    
      console.log(options[cond]);
    }
    
    
    logMessage(''); // Call Technical Support, Thanks!
    logMessage('computer'); // reload your MacBook
    Ответ написан более трёх лет назад
    4 комментария
    4 комментария
  • Как сделать прогресс бар выполнения ajax запроса?

    Kozlovskiy @Kozlovskiy
    тык
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
Оценили как «Нравится»
  • 1
  • 2
  • 3
  • Следующие →
Самые активные сегодня
  • Rsa97
    Rsa97
    • 6 ответов
    • 0 вопросов
  • Антон Банников
    • 5 ответов
    • 0 вопросов
  • pindschik
    pindschik
    • 4 ответа
    • 0 вопросов
  • AshBlade
    Сергей Соловьев
    • 4 ответа
    • 0 вопросов
  • Mike_Ro
    Михаил Р.
    • 4 ответа
    • 0 вопросов
  • mayton2019
    • 4 ответа
    • 0 вопросов
  • © Habr
  • О сервисе
  • Правила
  • Обратная связь
  • Блог

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

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