• Как при использовании регулярных выражений игнорировать пустые строки?

    vhood
    @vhood
    Не забывайте отмечать решения
    Так? "Admin Phone:[ \t]*(.+)"g
    https://regex101.com/r/TiNjZ7/1
    Ответ написан
    Комментировать
  • Как правильно сформировать запрос и вывести данные в цикле?

    vhood
    @vhood
    Не забывайте отмечать решения
    Если "в лоб":

    1. Убираем группировку, никаких подгрупп база не выдаст, будет по 1 записи на "уровень"
    - $ref_system = $pdo->prepare("SELECT * FROM `db_ref_system` GROUP BY `rs_type` ORDER BY `id` ASC");
    + $ref_system = $pdo->prepare("SELECT * FROM `db_ref_system` ORDER BY `id` ASC");


    2. Фильтруем итоговый вывод в 3 массива и выводим их
    <?php
    $all = $ref_system->fetchAll();
    $plc = array_filter($all, fn ($fields) => $fields['rs_type'] === 'plc');
    $deposit = array_filter($all, fn ($fields) => $fields['rs_type'] === 'deposit');
    $offer = array_filter($all, fn ($fields) => $fields['rs_type'] === 'offer');
    ?>
    <?php foreach ([$plc, $deposit, $offer] as $level => $data): ?>
      <div class="col-md-4 col-12 mb-lg-0 mb-4">
        <div class="fw-bold h5 mb-3">
          <?= $level + 1 ?>-й уровень
        </div>
        <?php foreach($data as $ref) : ?>
        <div class="mb-4">
          <span class="text-muted fw-semibold"><?=$ref['rs_type']?></span>
          <div>
            <div class="d-flex align-items-center pt-2">
              <div class="progress w-100">
                <div class="progress-bar bg-warning" role="progressbar" style="width: 100%;" aria-valuenow="100" aria-valuemin="0" aria-valuemax="100"></div>
              </div>
              <span class="ms-3 fw-bold text-warning"><?=$ref['rs_percent']?>%</span>
            </div>
          </div>
        </div>
        <?php endforeach; ?>
      </div>
    <?php endforeach; ?>
    Ответ написан
    5 комментариев
  • Как проверить отсутствие атрибута alt у тега img ругуляркой на php?

    @Maxim_Q
    попробуй так:
    <img(?![^>]*\balt=)[^>]*>
    В Notepad++ я нахожу все img где нет атрибута alt
    Ответ написан
    1 комментарий
  • Входит ли текущая дата в интервал, если года разные?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    $date = new DateTimeImmutable();
    $isInAcademicYear = (
        $date <= new DateTimeImmutable('31 May') ||
        $date >= new DateTimeImmutable('01 September')
    );
    var_dump($isInAcademicYear); // true
    Ответ написан
    1 комментарий
  • Как добавить/ удалить класс каждые 3 секунды в Vue?

    0xD34F
    @0xD34F Куратор тега Vue.js
    const blocks = ref(Array.from({ length: 5 }, (_, i) => (-~i) ** 2));
    const active = ref(0);
    
    function next() {
      active.value = (active.value + 1 + blocks.value.length) % blocks.value.length;
    }
    
    let intervalId = null;
    onMounted(() => intervalId = setInterval(next, 500));
    onUnmounted(() => clearInterval(intervalId));

    <div
      v-for="(n, i) in blocks"
      v-text="n"
      :class="[ 'box-item', { active: i === active } ]"
    ></div>

    Конечно, зашивать в стили цвета блоков и их количество - все эти :nth-child - не круто. Лучше сделать компонент, принимающий массив цветов и создающий блоки на его основе. Соответственно, вместо класса будет назначаться цвет фона напрямую, как-то так:

    <div
      v-for="(n, i) in colors"
      :style="{ backgroundColor: i === active ? n : '' }"
      ...
    Ответ написан
    2 комментария
  • Есть ли сервис, который составит план разработки сайта со всеми нюансами?

    создаёте полное техническое задание (что хотите, как должно быть и на что похоже у аналогов), идёте в местную не первый год существующую студию веб-дизайна и узнаёте бесплатно что и как в рамках вашего бюджета можно сделать

    далее пробуйте уточнить своё ТЗ и проверяете потом ещё в 2-3 студиях

    потом делаете тендер на создание и запуск сайта
    Ответ написан
    Комментировать
  • Пожалуйста оцените стоимость доработки расширения для google chrome?

    yesbro
    @yesbro
    Думаю, помогаю думать
    Обратиться на сайт фриланса. Там дадут оценку.

    Просить оценку у человека, который не будет заниматься разработкой, нет смысла.
    Ответ написан
    Комментировать
  • Откуда берутся и где хранятся данные по ценам и объемам купли продажи криптовалюты?

    xez
    @xez
    TL Junior Roo
    Цена образуется только в момент совершения сделки.
    Следовательно, информация может быть только там, где эти сделки совершают - т.е. на бирже.
    Ответ написан
    2 комментария
  • Как функционируют сайты для взрослых?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    1. Работают вполне законно там, где они хостятся. Где вы там увидели нарушение закона? Вот с чернухой борются активно и глобально - это да.
    2. С других сайтов тырят и пользователи заливают - это кто по-проще. А у кого есть деньги и вкладываются серьезно - сами снимают/организуют съемки и заказывают студиям.
    3. Стандартный абузоустойчивый хостинг в странах, где адалт контент разрешен и хостер разрешает.
    4. Конечно окупаемо - иначе бы не было их столько. Но есть нюансы - это как и везде. Например та же дикая конкуренция. А так - примерно 3/4 трафика интернета всегда было адалтом.
    Ответ написан
    1 комментарий
  • Как сделать запрос в интервале дат с несколькими условиями?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    - and visit_date between 2023-05-01 and 2023-09-30
    + and visit_date between '2023-05-01' and '2023-09-30'
    Ответ написан
    1 комментарий
  • Как вернуть NULL если ничего не найдено в SQL?

    Snakecharmer
    @Snakecharmer
    Широкопрофильный менеджер и аналитик
    У вас написано, что MySQL вернул пустой результат (0 строк). А пустой результат - это не NULL. Никак, разве что через CASE WHEN, но зачем?
    Ответ написан
    2 комментария
  • Как вернуть NULL если ничего не найдено в SQL?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    А есть какая-то адекватная причина, по которой вам требуется получать такой странный результат?
    Ответ написан
    Комментировать
  • Как вывести дату на диаграмме, если ее нет в базе?

    @RusaDrako
    При формировании данных сначала построй массив дат за период (пустые), а потом заполни его данными (которые есть).

    // Получаем массив $res
    // Формируем массив дат
    $list = [];
    $minDate = strtotime('-7 days');
    $maxDate = strtotime(date());
    for($date = $minDate; $date <= $maxDate; $date += 24*60*60) {
    	$list[date('Y-m-d', $date)] = 0;
    }
    // Заполняем данными
    foreach ($res as $row) {
    	$list[date('d.m.Y', strtotime($row['stat_day']))] = $row['count'];
    }
    $list_date[] = array_keys($list);
    $list_count[] = array_values($list);
    Ответ написан
    2 комментария
  • Как сделать разный title если header везде одинаковый?

    @Medvejonok86
    Создаете 4 файла: template.php, header.php, content.php, footer.php.
    Подключаете в файле template.php остальные 3 файла:

    //template.php
    <!DOCTYPE html>
    <html lang="ru">
    <?php
    include_once 'header.php';
    ?>
    <body>
    <?php
    include_once 'content.php';
    include_once 'footer.php';
    ?>
    </body>
    </html>


    Потом в том файле, который будет выводить содержимое страницы, сначала получаете нужные данные (допустим из базы), а далее подключаете файл template.php.

    Допустим, для главной страницы будет примерно так:

    //index.php
    $data = [
       'title' => 'Главная страница',
       'content' => 'Содержимое главной страницы',
    ];
    include_once 'template.php';


    Ну и соответственно в файлах шаблона выводите переменные:

    //header.php
    <head>
    <title><?=$data['title']?></title>
    </head>


    //content.php
    <div>
    <p><?=$data['content']?></p>
    </div>


    //footer.php
    <footer>
    <p>Подвал сайта</p>
    </footer>
    Ответ написан
    1 комментарий
  • Как сдеать фильтр email на php?

    @koder_1
    Битрикс программист
    Вероятно, такие штуки стоит делать в ручном режиме, реализовав вывод админу похожих email, который найдя неопровержимые доказательства дублей, будет удалять дубли вручную.

    Иначе можно зарезать пользователей, которые никакие не дубли, а просто используют похожий email.
    Ответ написан
    Комментировать
  • Laravel очередь, как добавить очередь выполнения?

    nokimaro
    @nokimaro
    Меня невозможно остановить, если я смогу начать.
    Используйте методы increment и decrement для изменеия баланса
    https://laravel.com/docs/10.x/queries#increment-an...

    public function updateBalance($bet_amount): void
      {
        $this->decrement('balance', $bet_amount);
      }


    под капотом соотв-но получите запрос вида
    UPDATE `users` SET `balance` = `balance` - $bet_amount WHERE id = ...


    p.s. Ваша проблема не в том что Laravel обрабатывает запросы одновременно, а в том что при одновременных запросах сперва делается SELECT текущего баланса, потом вы вычисляете новый баланс на PHP и делаете просто перезапись значения баланса из-за чего естественно теряется одно из изменений.

    p.p.s. Транзакции в БД хорошо, но дополнительно можно использовать lockForUpdate() чтобы исключить любые конфликты на уровне БД и тогда redis-локи в принципе можно убрать.
    Ответ написан
    Комментировать
  • Почему file_put_contents увеличивает число на единицу?

    nokimaro
    @nokimaro
    Меня невозможно остановить, если я смогу начать.
    Если хотите продиагностировать проблему, то можно добавить логирование вызова кода
    Создайте файл /conf/backtrace.txt
    file_put_contents(APP_PATH . '/conf/uniq_id.txt', $numb);
    
    //логируем стек вызовов
            ob_start();
            debug_print_backtrace();
            $trace = ob_get_contents();
            ob_end_clean();
    
    file_put_contents(APP_PATH . '/conf/backtrace.txt', $trace, FILE_APPEND);


    Но чудес не бывает. Если каждый раз получаете +2 то это может быть только потому что по какой-то причине код исполняется дважды.
    Ответ написан
    Комментировать
  • Почему file_put_contents увеличивает число на единицу?

    @pantsarny
    Вы вызываете скрипт через консоль или браузер ?
    Если через браузер - может ли быть такое , что запрос к favicon.ico вызывает данный скрипт? В таком случае у вас происходит вызов скрипта дважды
    Ответ написан
    Комментировать
  • Как реализовать фильтры по характеристикам товаров в каталоге интернет-магазина на Laravel?

    Sanes
    @Sanes
    Обычными тегами можно реализовать. В популярных пакетах для тега кроме модели можно указать группу.
    Ответ написан
    Комментировать
  • Если в title указать про vpn сильно может повлиять на выдачу в гугл?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Как сильно это может сказать на выдаче?

    Точные цифры предоставят в гугле, но сайт точно не вырастит в выдаче.

    Вы собираетесь бороться с последствиями, а не первопричиной. У нас "Табуретки в Москве" уже нелегальный контент? Разбирайтесь с блокировкой, а не с seo.
    Ответ написан
    Комментировать