Задать вопрос
  • Как исправить ошибку php?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Установить пакет php-curl
    Ответ написан
  • Возможно ли засунуть django в сайт написанный на bitrix 1c?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Возможно ли засунуть django в сайт написанный на bitrix 1c?

    Возможно. Нужно ли? - нет.
    Ответ написан
    Комментировать
  • Этот график меня беспокоит, что это может быть?

    xez
    @xez
    TL Junior Roo
    Это процесс открытия диспетчера задач
    Ответ написан
    1 комментарий
  • Wordpress: как избавится от PHP Notice?

    vhood
    @vhood
    Не забывайте отмечать решения
    prepare - это "подготовить", а "подготавливают" некий шаблон, в который потом пробрасывают значения. "Подготавливать" без значений некорректно.

    - $wpdb->get_var($wpdb->prepare('SELECT user_registered FROM '.$wpdb->users.' WHERE ID="'.$id.'"'));
    + $wpdb->get_var('SELECT user_registered FROM '.$wpdb->users.' WHERE ID="'.$id.'"');


    Однако, выглядит это не безопасно (как минимум, $id не типизирован). По-этому лучше пробросить его в prepare

    $wpdb->get_var(
        $wpdb->prepare("SELECT user_registered FROM $wpdb->users WHERE ID=%d", $id)
    );
    Ответ написан
    8 комментариев
  • Какое лучшее приложение терминала (локального) для Android?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Есть терминалы под сам андроид, без какой-либо обвязки и утилит, что в системе есть - тем и пользуйся. Ничего сравнимого с Termux, у которого есть готовая мини-система, пакетная база и пакетный менеджер.

    Нужно ещё понимать, что с какого-то SDK Level приложения больше не могут делать exec и запускать другие приложения соответственно. А с более низким SDK Level больше невозможно пройти review у гугла. Поэтому Termux нынче распространяется через сайт в виде apk-файла, а не из магазина.

    А чем Termux не угодил? Всё остальное всё равно никак по фичам не дотягивает.
    Ответ написан
    Комментировать
  • Как лучше обратиться к кнопке через id или через class?

    Ankhena
    @Ankhena Куратор тега JavaScript
    Нежно люблю верстку
    id - уникален, т.е. по id можно обратиться только к конкретному элементу.
    class - можно обратиться ко всем элементам с таким классом. Но обычно на классы завязана стилизация, они могут быть переименованы, удалены и т.д.
    data-атрибуты - мне нравится этот вариант. Можно поставить нужным элементам сколько угодно раз, можно задать разные data-атрибуты, можно ими свободно манипулировать. Отделены от стилизации. Хотя, конечно, можно стилизовать и по ним, но меньше вероятность, что будут удалены из разметки верстальщиком.
    Ответ написан
    Комментировать
  • Как сопоставлять товары при парсинге?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    0. Тренируем нейронку распознавать товары, материалы по Вашей теме:
    0.1. https://habr.com/ru/companies/stm_labs/articles/708608/
    0.2. https://new-retail.ru/business/e_commerce/price_ru...
    0.3. Сравнение текстовых описаний через методы обработки естественного языка (NLP), такие как TF-IDF, word2vec, BERT для извлечения смысла и семантического сравнения текстов (Spacy, Hugging Face Transformers и другие библиотеки NLP для анализа текста).
    0.4. Анализ изображений товаров с помощью сверточных нейронных сетей (CNN), которые могут выявлять визуальные сходства между изображениями товаров, даже если они отличаются углом съемки, освещением или масштабом (OpenCV и TensorFlow).
    0.5. Графовые базы данных и алгоритмы, которые могут использоваться для идентификации связей между товарами на основе их атрибутов и отношений.
    1. Нейронка из п0. распознает товары.
    2. Человек в случайном порядке проверяет работу нейронки из п1. и при необходимости, сообщает ей её ошибки. Таким образом происходит дообучение нейронки уже в процессе работы.

    Либо, использовать поисковые движки (с его возможностями полнотекстового поиска и сопоставления), по типу Elasticsearch или OpenSearch (получая наибольшую вероятность сопоставления).
    Ответ написан
    5 комментариев
  • Как организовать доступ к непубличным токенам?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега Веб-разработка
    В репозитории хранится .env.example, содержащий заглушки ключей и комментарии с инструкциями для их получения. После клонирования он переименовывается и заполняется.
    Ответ написан
    2 комментария
  • Как разделять относительно одинаковые скрипты между клиентами?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Скрипты выросли. И у них появилась общая часть (shared). Которая не меняется. И вариативная часть которую
    можно спокойно менять под каждого клиента
    . Как выделить общее и частное - это великая тайна.
    И понять ее можно только с опытом.

    Я-бы предложил следующую стратегию. В общее (shared) должны зайти интерфейсы и абстрактные классы
    или какие-то сущности которые почти никогда не меняются. В вариативные части (client1, client2 ...)
    зайдут реализации или то что просто сильно меняется.

    Преимущества данного подхода - будет меньше кода в перспективе. Но есть и недостаток.
    Некоторые клиенты могут почувстовать странное (немотивированное) изменение версии
    в (shared) части которое они не заказывали. Впрочем это может быть редко или вообще никогда.
    Ответ написан
    Комментировать
  • Как разделять относительно одинаковые скрипты между клиентами?

    SeaInside
    @SeaInside
    15 лет пилю все эти штуки
    Проектировать расширяемую, модульную структуру решения (конкретнее без примеров кода не сказать).

    Оставлять в "основном" решении возможность подвязаться на события / переопределить какие-то константы, методы / etc.
    В "клиентских" решениях либо расширять базовое решение (наследование в терминах ООП), либо в основном решении продумывать публичное API так, чтобы иметь возможность императивно дополнять / модифицировать результат основного скрипта. Ну либо проектировать настройки основного решения так, чтобы оно одновременно покрывало все клиентские сценарии (декларативный подход).

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

    Императивный подход куда быстрее запилить, само по себе "основное" решение будет куда меньше, но в коде "клиентских" версий будет гораздо больше неочевидного. Тесты опять-таки, если пишутся, в таком случае должны писаться на клиентских сайтах тоже, так как прохождение тестов на "основном" решении вообще ничего не будет гарантировать.

    Если вышесказанное звучит как-то сложно, то работа над параллельными версиями (если клиентов не больше человек 10) - вполне себе вариант, почему нет. :)
    Ответ написан
    1 комментарий
  • Как найти, где вызывается метод в PHP?

    Sanasol
    @Sanasol Куратор тега PHP
    нельзя просто так взять и загуглить ошибку
    https://github.com/serbanghita/Mobile-Detect/blob/...

    public function __call($name, $arguments)
    Ответ написан
    1 комментарий
  • Почему в ответе скрипта появляется закрывающий тег РНР?

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    Для ответа на этот вопрос нужна всего лишь капелька здравого смысла.
    Ну и адекватное восприятие реальности, с чем у большинства населения, увы, как раз большие проблемы.

    Человек с адекватным восприятием реальности сделает очень простое умозаключение: если в ответе появляются посторонние символы, то это значит, что они присутствуют в скрипте. После этого найдет эти символы и удалит. Тупо проверив все файлы, которые участвуют в обработке запроса.
    А для неразрешимой проблемы "почему на локалке посторонних символов нету" найдет простое рациональное объяснение: файлы "на локалке" и "не на локалке" отличаются.

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

    Ну и поскольку у меня глаза не могут смотреть на эти хаотичные телодвижения, то вот как этот код может выглядеть на самом деле

    файл init.php
    <?php
    $conn = new PDO('mysql:host='.DB_HOST.';dbname='.DB_NAME.';charset=utf8mb4', DB_USER, DB_PASSWORD);  
    $conn -> setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION ); 
    
    set_exception_handler(function ($e)
    {
        http_response_code(500);
        error_log($e);
        echo json_encode([
                'code' => 'error',
                'message' => 'Internal server error'
        ]);
    });

    файл с кодом
    <?php
    // Подключаемся к базе данных
    require 'init.php';
    
    // Получаем данные
    $list = get_list($conn);
    
    echo json_encode([
        'code' => 'success',
        'data' => $list
    ]);


    Без всей этой кропотливой возни и самоповторов.
    Отсутствие данных ошибкой не является. В JS можно проверить массив data и вывести сообщение, что он пустой. Никакой специальный код для этого передавать не нужно.
    А настоящие ошибки надо обрабатывать единообразно, в одном месте. А не писать обработку после каждой строчки, причем каждый раз по-разному.
    Ответ написан
    3 комментария
  • Как обновить страницу в браузере после изменения в js скрипт?

    @MagicMight
    no magic quotes
    1) Откройте инструменты разработчика и отключите кэширование
    2) Если надо, можете добавить к ссылкам на скрипты динамический хвост типа $script_url . '?t=' . time();
    3)
    // set expires header
    header('Expires: Thu, 1 Jan 1970 00:00:00 GMT');
    
    // set cache-control header
    header('Cache-Control: no-store, no-cache, must-revalidate, max-age=0');
    header('Cache-Control: post-check=0, pre-check=0',false);
    
    // set pragma header
    header('Pragma: no-cache');

    Prevent Browser Caching for PHP Script
    Ответ написан
    5 комментариев
  • CMS для небольшого веб-проекта?

    Sanes
    @Sanes
    Отзывы это те же самые комментарии. Wordpress подойдет.
    Ответ написан
    1 комментарий
  • Возникает ошибка в логе php если нет UserAgent, как поправить?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    - $agent  = htmlspecialchars($_SERVER['HTTP_USER_AGENT'], ENT_QUOTES);
    + $agent  = htmlspecialchars($_SERVER['HTTP_USER_AGENT'] ?? '', ENT_QUOTES);
    Ответ написан
    Комментировать
  • Как понять эти селекторы?

    Get-Web
    @Get-Web Куратор тега CSS
    Front-End Developer
    К элементу у которого есть оба класса:
    <div class="class-1 class-2">
        Some text
    </div>

    Если бы между ними был пробел .class-1 .class-2 тогда стиль применялся бы к .class-2 который находится внутри .class-1
    <div class="class-1">
    	<div class="class-2">
    		Some text
    	</div>
    </div>
    Ответ написан
    Комментировать
  • Как установить php8.2-sqlite3 Ubuntu 18?

    karabanov
    @karabanov Куратор тега Ubuntu
    Системный администратор
    Под такой старый дистрибутив Ondrej не собирает пакеты.

    Отвечая на вопрос "Как установить php8.2-sqlite3 Ubuntu 18?" могу предложить запускать PHP в контейнере.
    Ответ написан
    3 комментария
  • Как правильно перехватывать события ухода пользователя со страницы?

    Mike_Ro
    @Mike_Ro Куратор тега JavaScript
    Python, JS, WordPress, SEO, Bots, Adversting
    Ответ написан
    Комментировать