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

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

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

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

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

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

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

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

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

jekahm

  • 0
    вклад
  • 45
    вопросов
  • 10
    ответов
  • 70%
    решений
Ответы
  • Информация
  • Ответы
  • Вопросы
  • Комментарии
  • Подписки
  • Нравится
  • Достижения
  • Кеширование файла с file_get_contents?

    jekahm @jekahm Автор вопроса
    Всем спасибо за помощь!
    Оказалось, что это баг провайдера данных, который предоставляет данную инфу.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Парсинг url по шаблону в PHP?

    jekahm @jekahm Автор вопроса
    Написал скрипт, который бы решал данный вопрос:

    $patterns = [
        "node/%node",
        "node/%node/news",
        "album/%album/shadowbox/%photo",
        "media/photo",
        "blogs",
        "news",
        "node/%node/players",
    ];
    
    $url = "node/11111/news";
    
    foreach ($patterns as $pattern) {
    
        $result_pattern = preg_replace("/\/%[^\/]+/x", '/*', $pattern);
    
        $to_replace = ['/\\\\\*/'];
        $replacements = ['[^\/]+'];
    
        $result_pattern = preg_quote($result_pattern, '/');
        $result_pattern = '/^(' . preg_replace($to_replace, $replacements, $result_pattern) . ')$/';
    
        if (preg_match($result_pattern, $url)) {
            echo "<pre>" . $pattern . "</pre>"; 
        }
    
    }


    Можете проанализировать, достаточно ли он функционален в данном случае. И также хотел бы узнать, зачем в данной строке $to_replace = ['/\\\\\*/']; слэш для экранирования используется целых 5 раз (нашел такой спсособ в интернете).
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Проблема с GROUP BY в MySQL 5.7.11 и выше?

    jekahm @jekahm Автор вопроса
    Хорошая статья по данной тематике sqlinfo.ru/articles/info/18.html
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Почему в Yii2 событие submit у формы происходит дважды?

    jekahm @jekahm Автор вопроса
    Еще один вариант по решению данной проблемы описан здесь https://github.com/yiisoft/yii2/issues/10498
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Вставить результат JQuery UI Autocomplete в блок с определённым классом?

    jekahm @jekahm Автор вопроса
    Решил проблему след. образом:
    https://jsfiddle.net/0ume7qtq/1/
    Может кому-то понадобится.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Реализация массовой email-рассылки с помощью Yii2 и API Amazon SES?

    jekahm @jekahm Автор вопроса
    Up!
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Почему метод VK API возвращает пустой результат в процессе асинхронного GET запроса?

    jekahm @jekahm Автор вопроса
    Решил данную проблему. Может кому пригодится. Само собой, используя функционал Yii2, но общий принцип, думаю, везде один и тот же.
    Создаём дополнительное поле в таблице юзеров для хранения токена. При авторизации юзера посредством ВК записываем туда объект OAuthToken (соответственно обаработанный функцией serialize).

    serialize($client->getAccessToken())

    В экшне actionGetAllMembers дописывем след. код:
    $user_id = Yii::$app->request->get('user_id');
    $model->refreshSocialToken($user_id);

    где user_id - id текущего юзера, который мы передаем данному экшну.
    refreshSocialToken - метод модели SearchForm:
    public function refreshSocialToken($user_id) {
    		$vk = \Yii::$app->authClientCollection->getClient('vkontakte');
    		$user = Auth::findOne(['user_id' => $user_id]);
    		$vk->setAccessToken(unserialize($user->token));
    		return true;
    	}

    в котором мы извлекаем значения поля token для текущего юзера, куда перед этим был записан сериализованный объект, проводим обратную процедуру unserialize и вызываем метод setAccessToken, чтобы по сути установить еще раз то же самое значения токена.

    Делается это всё потому, что при асинхронном запросе сессия, основанная на файлах, блокируется. И значения необходимо установить по новой в текущем экшне (actionGetAllMembers). Что и достигается с помощью метода setAccessToken.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Почему поисковая машина никаим образом не видит языковую версию сайта на yii2?

    jekahm @jekahm Автор вопроса
    Проблема решена. Ошибка была в неправильной реализации определения текущего языка (компонент request, класс LangRequest)
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как работает функция по формированию дерева категорий?

    jekahm @jekahm Автор вопроса
    TO greabock:
    Не совсем понятно, каким именно образом вызывается данная рекурсия.
    Здесь я сделал вывод массива $map на каждой итерации цикла. Не могли бы Вы мне обьяснить, как возникает вложенный массив, например, в т.н. разделе с условным названием Parent => 2--------------------Category => 6 (строка 787) :
    [0] => Array
                (
                   [id] => 6
                   [parent] => 2
                   [name] => Subcategory F
                   [subcategories] => Array
                   (
                   )
    
                )

    Может тогда на основе этого я смогу понять основной принцип
    Ответ написан более трёх лет назад
    2 комментария
    2 комментария
  • Есть ли софт для бэкапирования данных на внешний HDD?

    jekahm @jekahm Автор вопроса
    Касаемо данных - это обычная директория (одна или несколько) с файлами.
    Бэкапирование должно происходить каждый раз при подключении к машине внешнего HDD.
    Тип - пока что не знаю. Какой можете поррекомендовать? И в чем вообще отличия инкрементного и дифференциального резервного копирования?
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
Оценили как «Нравится»
Самые активные сегодня
  • Sozdavan
    • 15 ответов
    • 0 вопросов
  • Evgenii
    • 12 ответов
    • 0 вопросов
  • firedragon
    Владимир Коротенко
    • 9 ответов
    • 0 вопросов
  • mayton2019
    • 7 ответов
    • 0 вопросов
  • Vindicar
    Vindicar
    • 5 ответов
    • 0 вопросов
  • Dr. Bacon
    • 5 ответов
    • 0 вопросов
  • © Habr
  • О сервисе
  • Правила
  • Обратная связь
  • Блог

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

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