• Каким регулярным выражением можно найти знак ")"?

    @dodo512
    Экранируй \)
    preg_replace('~\)~', '', $text);

    Или используй символьный класс [)]
    preg_replace('~[)]~', '', $text);
    Ответ написан
    Комментировать
  • Каким регулярным выражением можно найти знак ")"?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Нужно экранировать его:
    \)
    spoiler
    $re = '/\)/';
    $str = 'Hi (all)!';
    
    preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0);
    
    // Print the entire match result
    var_dump($matches);

    https://regex101.com/r/tRw8Ug/2
    Ответ написан
    Комментировать
  • Как быстрее запоминать как пишется код?

    GavriKos
    @GavriKos
    1. Использовать IDE, а не их подобия или блокноты
    2. Подтягивать английский
    3. Вникать в логику кода, а не копипастить
    4. Вникать в логику слов.
    5. Мнемонические правила запоминания юзать
    Ответ написан
    Комментировать
  • Как создать таймер с голосовым управлением?

    GavriKos
    @GavriKos
    Ардуина не вывезет распознавание голоса. Обычно вообще все такие устройства не распознают команды самостоятельно, а отправляют их на сервак для распознавания. Сервак может быть как ваш (с самописными или готовыми библиотеками), так и можно подключать готовые АПИ (у того же яндекса они есть).

    Но может оказаться что в итоге дешевле купить готовое, типа яндекс.станции
    Ответ написан
    2 комментария
  • Чем можно заменить localStorage?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Вам недостаточно инструкции? Не храните в localStorage чувствительные данные, обязательно проверяйте данные на сервере, если они изменены вносите клиента в бан лист
    Ответ написан
    1 комментарий
  • Почему не подключается Js скрипт?

    bingo347
    @bingo347 Куратор тега Node.js
    Crazy on performance...
    А Вы пробовали пройти Вашу строчку по шагам?
    app.use( // 5
      express.static( // 4
        path.join( // 3
          __dirname, // 1
          'public' // 2
    )))

    1. __dirname - Содержит абсолютный путь до папки с файлом в котором выполняется (для примера пусть будет '/path/to/project')
    2. 'public' - просто строчка
    3. соединяем (1) и (2) как путь, получим '/path/to/project/public'
    4. express.static - принимает путь из (3) и создает функцию которая обрабатывает запросы и ищет им соответствие в виде файлов в указанной папке
    5. app.use - просто подключает функцию из (4) к движку express'а, без каких либо фильтров, то есть функция static обработает абсолютно все запросы которые дойдут до нее

    Теперь смотрим на шаблон, в нем прописан скрипт public/reglog.js
    Это относительный путь, то есть он автоматом соединится с путем от куда вызван
    то есть если main.hbs отрисуется в условный site.com/index.html - то скрипт запросится из
    а если main.hbs отрисуется в условный site.com/some/nested/index.html - то скрипт запросится из site.com/some/nested/public/reglog.js

    Теперь представьте, в функцию 4 попадает запрос /some/nested/public/reglog.js
    она соединяет ее с путем из (3) и получает путь /path/to/project/public/some/nested/public/reglog.js
    потом смотрит его на диске и естественно ничего не находит, ставит в express response статус 404 и отдает управление дальше в express

    для ленивых, которым готовый суп, а не разобраться почему
    <script src="/reglog.js"></script>
    Ответ написан
    1 комментарий
  • Что надо знать и уметь, чтобы претендовать на позицию Джуниора?

    saboteur_kiev
    @saboteur_kiev Куратор тега Карьера в IT
    software engineer
    Всем доброго времени суток. У меня, как и у тысячи других новичков, со временем возникает подобный вопрос "Что надо знать на старте, чтобы трудоустроиться на низшую позицию junior Front-end?".

    Уметь воспользоваться гуглом чтобы найти готовые 1000 ответов. Ну вот серьезно.

    Коротко о моём опыте.

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

    В частности на данный момент я владею html (flex-box), css (основы препроцессора Less), основы JS(массивы и их методы, что такое объекты и как получить значения из этих объектов, функции, циклы. Работа с DOM-элементами)

    Это не уровень джуна, это так, посидел поковырял дома.

    React + Redux (читай, почти не писал на нём. Хотя в планах знакомый предлагал написать совместный проект на нём "Подсчёт каллорий")

    Ну это было бы ХОТЬ ЧТО-ТО.

    Github

    Это что? знание гитхаб? Как зайти на сайт и зарегаться? Ну прямо очень важно...

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

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

    К тому же JS не мало всего. Распыляться и изучать всё. Так всё и не запомнишь сразу.

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

    Некоторые вещи используются в практике редко или вообще ни кто так не делает. Чтобы не забивать голову

    Выбери не-ИТ сферу, тогда не будешь забивать голову. Ну вот серьезно.

    хотелось бы получить направление, что стоит знать Джуну, а дальше в процессе работы уже углубляться в недры JS.

    В вакансиях указывается стек. Чистый js это уже база, сейчас востребованы фреймворки. А их лучше учить, когда базовый js уже на уровне (не циклы и массивы, а нормальный базовый js)

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

    На это всем плевать. И людям на форуме. И работодателю. Платят не за то, что сейчас кому-то очень нужна работа, а за то, что человек умеет выполнять эту работу.

    Если ты гуглишь и никак не находишь вакансию попроще, где тебя уже ждут - так это не потому, что есть секретный ингредиент, как стать джуном за месяц, а потому что джун это уже специалист с кучей знаний, и ты видимо просто не готов учить все.
    Если готов - то нагугли вакансии в своем городе, в компаниях которые тебе нравятся, читай что там требуется, учи и иди на собеседование. Походишь хотя бы на 10 собеседований и будет понятно что конкретно тебе в конкретные позиции нужно еще подучить.
    А вопросы на тостере - тебя на тостере на работу не берут, каждый будет говорить со своей колокольни своего опыта. И опыт трудоустройства 10-летней давности не подходит, а опыт трудоустройства 1-месячной давности - не статистика, на которую можно полагаться, а конкретный один эпизод. Поэтому набирай СВОЙ ЛИЧНЫЙ опыт - собеседования.
    Ответ написан
    1 комментарий
  • Чем следить за сотрудником?

    hottabxp
    @hottabxp
    Сначала мы жили бедно, а потом нас обокрали..
    Занесите в базу левые данные(например, жены, мужа, брата, свата, своей собаки) и дайте эти разные данные разным сотрудникам. Если позвонят на их номера(можно купить левые сим карты) не из вашего офиса, или на почту(лучше новую зарегистрировать) посыпется спам, можно точно вычислить крысу.
    Либо же есть еще 100% вариант, но не знаю, понравится вам он, или нет. Если у вас есть служба безопасности(если нет, можно бригаду нанять), только не экономить. Они быстро вычислят. А вы получите такую компенсацию, которая окупит и бригаду, и всё остальное.
    Ответ написан
    7 комментариев
  • Как организовать поиск собеседника в вк боте?

    lxstvayne
    @lxstvayne
    Люблю Python
    Можно апи использовать и писать код красивее. Читабельность падает сразу, когда видишь такой код. И, пожалуйста, вставляйте код в блок.
    Ответ написан
    Комментировать
  • Как правильно связать несколько таблиц?

    @Nc_Soft
    <?php
    $model = \App\Models\Building::where('id', 1)->with('street.settlement.subregion.region.country')->first();
    echo $model->address;

    <?php
    
    namespace App\Models;
    
    use Illuminate\Database\Eloquent\Model;
    
    class Building extends Model
    {
        public function street()
        {
            return $this->belongsTo('App\Models\Street');
        }
    
        public function getAddressAttribute()
        {
            $parts = [
                $this->street->settlement->subregion->region->country->title,
                $this->street->settlement->subregion->region->title,
                $this->street->settlement->subregion->title,
                $this->street->settlement->title,
                $this->street->title,
                $this->title,
            ];
            return join(', ', $parts);
        }
    }


    <?php
    
    namespace App\Models;
    
    use Illuminate\Database\Eloquent\Model;
    
    class Street extends Model
    {
        public function settlement()
        {
            return $this->belongsTo('App\Models\Settlement');
        }
    }


    <?php
    
    namespace App\Models;
    
    use Illuminate\Database\Eloquent\Model;
    
    class Settlement extends Model
    {
        public function subregion()
        {
            return $this->belongsTo('App\Models\Subregion');
        }
    }


    <?php
    
    namespace App\Models;
    
    use Illuminate\Database\Eloquent\Model;
    
    class Subregion extends Model
    {
        public function region()
        {
            return $this->belongsTo('App\Models\Region');
        }
    }


    <?php
    
    namespace App\Models;
    
    use Illuminate\Database\Eloquent\Model;
    
    class Region extends Model
    {
        public function country()
        {
            return $this->belongsTo('App\Models\Country');
        }
    }


    <?php
    
    namespace App\Models;
    
    use Illuminate\Database\Eloquent\Model;
    
    class Country extends Model
    {
    
    }


    DROP TABLE IF EXISTS `buildings`;
    CREATE TABLE `buildings` (
      `id` bigint unsigned NOT NULL AUTO_INCREMENT,
      `street_id` int DEFAULT NULL,
      `title` varchar(255) COLLATE utf8mb4_ru_0900_ai_ci DEFAULT NULL,
      PRIMARY KEY (`id`),
      UNIQUE KEY `id` (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_ru_0900_ai_ci;
    
    DROP TABLE IF EXISTS `countries`;
    CREATE TABLE `countries` (
      `id` bigint unsigned NOT NULL AUTO_INCREMENT,
      `title` varchar(255) COLLATE utf8mb4_ru_0900_ai_ci DEFAULT NULL,
      PRIMARY KEY (`id`),
      UNIQUE KEY `id` (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_ru_0900_ai_ci;
    
    DROP TABLE IF EXISTS `regions`;
    CREATE TABLE `regions` (
      `id` bigint unsigned NOT NULL AUTO_INCREMENT,
      `country_id` int DEFAULT NULL,
      `title` varchar(255) COLLATE utf8mb4_ru_0900_ai_ci DEFAULT NULL,
      PRIMARY KEY (`id`),
      UNIQUE KEY `id` (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_ru_0900_ai_ci;
    
    DROP TABLE IF EXISTS `settlements`;
    CREATE TABLE `settlements` (
      `id` bigint unsigned NOT NULL AUTO_INCREMENT,
      `subregion_id` int DEFAULT NULL,
      `title` varchar(255) COLLATE utf8mb4_ru_0900_ai_ci DEFAULT NULL,
      PRIMARY KEY (`id`),
      UNIQUE KEY `id` (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_ru_0900_ai_ci;
    
    DROP TABLE IF EXISTS `streets`;
    CREATE TABLE `streets` (
      `id` bigint unsigned NOT NULL AUTO_INCREMENT,
      `settlement_id` int DEFAULT NULL,
      `title` varchar(255) COLLATE utf8mb4_ru_0900_ai_ci DEFAULT NULL,
      PRIMARY KEY (`id`),
      UNIQUE KEY `id` (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_ru_0900_ai_ci;
    
    DROP TABLE IF EXISTS `subregions`;
    CREATE TABLE `subregions` (
      `id` bigint unsigned NOT NULL AUTO_INCREMENT,
      `region_id` int DEFAULT NULL,
      `title` varchar(255) COLLATE utf8mb4_ru_0900_ai_ci DEFAULT NULL,
      PRIMARY KEY (`id`),
      UNIQUE KEY `id` (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_ru_0900_ai_ci;
    
    INSERT INTO `buildings` (`id`, `street_id`, `title`) VALUES
    ('1', '1', '43');
    
    INSERT INTO `countries` (`id`, `title`) VALUES
    ('1', 'Российская Федерация');
    
    INSERT INTO `regions` (`id`, `country_id`, `title`) VALUES
    ('1', '1', 'Алтайский край');
    
    INSERT INTO `settlements` (`id`, `subregion_id`, `title`) VALUES
    ('1', '1', 'г. Барнаул');
    
    INSERT INTO `streets` (`id`, `settlement_id`, `title`) VALUES
    ('1', '1', 'ул. Пушкина');
    
    INSERT INTO `subregions` (`id`, `region_id`, `title`) VALUES
    ('1', '1', 'Алтайский район');
    Ответ написан
    3 комментария
  • Откликнулся на заказ, а при общении с заказчиком отказался: допустимо?

    Sanes
    @Sanes
    Нормально. Потому что из заказчика приходится клещами вытягивать, что он хочет.
    Ответ написан
    Комментировать
  • Возможно ли такая функция?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Всё надо учить. И ООП, и MVC, и фреймворки.
    А перед этим надо освоить чистый РНР. Плюс SQL, базы данных, программирование, протоколы, безопасность, устройство серверов
    От курсов толку не будет, надо купить нормальную книжку. И не одну.
    Ну и запастись терпением.
    Годика через два-три сможешь создать нормальный веб-сайт.

    функцию создать можно.
    Ответ написан
    1 комментарий
  • Как показать код в определенное время года?

    mahmudchon
    @mahmudchon
    <?php
    $time_now = time(); // время сейчас в секундах
    
    $date_start = date( '15.12.Y' ); // 15.01.2020
    $date_end  = date( '15.01.' ) . ( (int)date('Y') + 1 ); // 15.01.2021
    
    $time_start = strtotime($date_start); // переводим в секунды
    $time_end  = strtotime($date_end ); // переводим в секунды
    
    if( $time_now >= $time_start && $time_now <= $time_end  ) { // сравниваем в секундах
        echo 'something'; // выводим что-то
    }
    
    echo date( 'd.m.Y H:i:s', $time_now );  // дата сейчас
    Ответ написан
    2 комментария
  • Как показать код в определенное время года?

    @FasterTans
    <?php
       
    $currentDate = date('Y-m-d');
    $currentDate = date('Y-m-d', strtotime($currentDate));
       
    $startDate = date('Y-m-d', strtotime("01/09/2019"));
    $endDate = date('Y-m-d', strtotime("01/10/2019"));
       
    if (($currentDate >= $startDate) && ($currentDate <= $endDate)){
        echo "Current date is between two dates";
    }else{
        echo "Current date is not between two dates";  
    }

    Динамически подставляйте текущий год
    Ответ написан
    Комментировать
  • В каком этапе обучения нужно беспокоиться о безопасности?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Начинать беспокоиться о безопасности надо ДО начала обучения. То есть сильно раньше, чем когда уже "написал блог".
    Хотя бы базовые принципы надо применять с самого начала
    Для запросов в бд использовать подготовленные выражения.
    Для вывода информации в html использовать htmlspecialchars
    Если не дай бог читаются какие-то указанные пользователем файлы - то basename()
    При заливке файлов проверять расширение и переименовывать файл.
    При выполнении пользователем каких-то действий, проверять имеет ли он на это право.
    Во все формы добавлять сохранённый в сессии токен, чтобы их не могли подделать
    Ответ написан
    1 комментарий
  • Как ускорить время SELECT MySQL?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Во-первых не позорься, убери тег big data. 11 лямов - это не бигдата, а кошкины слёзки.
    Во-вторых, надо учиться задавать вопросы.
    Не вопрос вида "доктор, у меня рука болит, как сделать чтобы не болела", а подробно излагать, что за поиск, что за запрос, что за данные, что за столбец, есть ли индекс, что показывает explain.

    В текущем же виде ответ только один - помазать зеленкой добавить индекс
    если индекс есть, и поиск идет по полному совпадению, то смотреть, влезает ли индекс в память
    Если поиск идет по частичному совпадению - то выносить его в отдельный сервис, sphinx/elastic
    Ответ написан
  • Можно ли запустить php-скрипты на разных ядрах?

    @Stalinko
    PHP'шник и фрилансер до мозга костей
    Да, это разные процессы.
    Да, каждый процесс будет обрабатываться своим ядром.

    Что значит "вместо PHP_CLI использовать PHP-FPM"?
    В консоли вы можете запустить сколько угодно процессов. А PHP-FPM сам балансирует количество потоков в зависимости от настроек.
    Ответ написан
    Комментировать
  • Как запретить повторный лайк?

    samodum
    @samodum
    Какой вопрос - такой и ответ
    Какая-то каша, а не код.
    Это же элементарная задача для бэкенда.
    Клиент через Ajax отправляет команду на голосование с параметром ID коммента. POST-запрос типа /vote {id:234, type:"up"}, ID юзера вычисляем на стороне сервера по сессии из хедера запроса или через JWT.
    Сервер смотрит, голосовал юзер или нет.
    И соответственно отправляет клиенту ответ - ок, или ошибку: уже голосовал.
    Ответ написан
    Комментировать
  • Как на PHP получить ответ сервера?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Вместо редиректа можно настроить реврайт. На отдельный скрипт.
    Который будет записывать в блокнотик запрошенный адрес и уже сам делать 301

    (вообще вопрос какой-то шизофренический, я еле понял, что имеется в виду - то ли запрос к серверу, то ли скрипт на сервере. при чем здесь "ответ сервера?")

    Хотя нет, снова не понял. Если вопрос про существующую страницу сайта то тупо инклюд на пхп.
    вообще надо как-то боле детально объяснить, как устроен сайт и что за скрипт.
    возможно, тупо подойдет Яндекс Метрика
    Ответ написан
    4 комментария
  • Как правильно добавить элементы в уже существующий массив?

    @Stalinko
    PHP'шник и фрилансер до мозга костей
    $data['fields'] += ['ADIPISCING' => 'ELIT'];

    Отсутствующие поля добавит. Уже имеющиеся оставит нетронутыми.
    Ответ написан
    Комментировать