Задать вопрос
  • Как получить дату ближайшего понедельника на JS?

    От сегодняшнего дня
    date = new Date();
    m = new Date();
    if(date.getDay()){m.setDate(date.getDate() + 8 - date.getDay())} else {m.setDate(date.getDate() + 1)}
    alert(m);
    Ответ написан
    1 комментарий
  • Как в Api Google maps убрать логотип и текст с картинки?

    wielski
    @wielski
    ✔ Совет: Вам помогли? Отметьте ответы решением.
    Можно выдернуть прилегающие тайлы.

    http://mt{s}.google.com/vt/v=w2.106&x={x}&y={y}&z={z}&s=&lyrs=m@{timestamp},traffic%7Cseconds_into_week:{seconds}&opts=T&apistyle=p.v%3Aoff

    Скажем, это выведет только пробки (обратите внимание на аттрибуты opts и apistyle).

    Если их убрать, выведет обычный тайл карты.
    К примеру:
    v=w2.106&x=39616&y=20495&z=16&s=&lyrs=m@
    Ответ написан
    7 комментариев
  • Как экспортировать данные полученные по API в CSV?

    2ord
    @2ord
    1. Получить данные по API.
    2. Выполнить парсинг JSON, занеся список товаров в переменную типа список.
    3. Открыть CSV файл на запись и каждый элемент списка товаров сериализовать как строку в формате CSV.
    4. Закачать на какой-то сервер (HTTP, FTP) и получить путь к файлу.
    Ответ написан
    2 комментария
  • Как организовать многопоточное обращение к сторонним API?

    bigton
    @bigton
    Web-программист
    Допустим, вы создаете новый уникальный сервис по поиску дешевых авиабилетов ;)

    Интерфейс

    1. Пользователь заходит на страницу вашего сервиса, выбирает направление (city) и дату вылета (date), нажимает Найти.
    2. Оправляется AJAX POST запрос на /search.php {city, date}, который возвращает ID запроса (request_id).
    3. Каждые 1-5 секунд отправляется AJAX GET запрос на /search.php?check=request_id, который возвращает процент готовности ответа (0-100%).
    4. Когда готовность достигает 100%, отправляется AJAX GET запрос на /search.php?result=request_id который возвращает информацию о найденных билетах.

    /search.php

    1. Создание очереди заданий на запрос к авиакомпаниям

    - создание ID запроса
    $request_id = INSERT INTO `request` (`city`, `date`) VALUES (city, date);

    - создание очереди заданий на получение информации по билетам
    INSERT INTO `request_task` (`request_id`, `airline_id`, `status`) VALUES (request_id, 1, 0);
    INSERT INTO `request_task` (`request_id`, `airline_id`, `status`) VALUES (request_id, 2, 0);
    INSERT INTO `request_task` (`request_id`, `airline_id`, `status`) VALUES (request_id, 3, 0);
    INSERT INTO `request_task` (`request_id`, `airline_id`, `status`) VALUES (request_id, 4, 0);

    2. Проверка готовности ответа

    SELECT COUNT(*) FROM `request_task` WHERE `request_id` = request_id AND `status` > 0;

    3. Информация о найденных билетах

    SELECT * FROM `request_result` WHERE `request_id` = request_id

    /task.php

    Суть: выбрать из очереди заданий одну задачу и выполнить ее. Скрипт нужно запускать несколько раз в секунду в зависимости от нагрузки на сервис

    1. Забронировать задачу на выполнение

    $process = ip2long($_SERVER['SERVER_ADDR']).'.'.getmypid().'.'.microtime(TRUE);

    UPDATE `request_task` SET `process` = $process WHERE `status` = 0 LIMIT 1;

    2. Получить забронированную задачу

    SELECT * FROM `request_task` WHERE `process` = $process

    3. Обратится к нужной авиакомпании

    if (airline_id == 1) запрос к Аэрофлоту

    4. Положить результат обращения в `request_result`

    5. UPDATE `request_task` SET `process` = 0, `status` = 1 WHERE `process` = $process

    Таким образом реализуется многопоточность!
    Ответ написан
    Комментировать
  • Алгоритм взаимодействия со сторонними сервисами через модели или пакеты?

    AmdY
    @AmdY
    PHP и прочие вебштучки
    Обычная factory, апишки выносишь в конфиг
    foreach (Config::get('api.list') as $apiName) {
      $results[$apiName] = Api::create($apiName)->get($keyword);
    }
    Ответ написан
    Комментировать
  • Как спарсить из текста его часть?

    serg_small_developer
    @serg_small_developer
    Начинающий прогер
    1) preg_match_all("/.*?\,/",    $variable(где лежит нужный текст),    $variable(куда будет вложен текст)  );
    2) preg_match_all("/\d\d\d\d\-\d\d\-\d\d/",    $variable(где лежит нужный текст),    $variable(куда будет вложен текст)  );

    регулярки самые примитивные но для ваших вариантов подойдет
    str_replace - это для замены по регулярке
    date_parse_from_format - получение инфы о дате в определенном формате
    Ответ написан
    Комментировать