Задать вопрос
  • Как заменить только слово целиком в строке?

    kryamk
    @kryamk
    <?php
    
    // Исходный текст, в котором будем искать и заменять слова
    $field = "
    libero bryan, 
    sit amet adipiscing sem neque sed ipsum.bryan 
    bfringilla mauris sit amet nibh. https://site.com/member/bryan.html?r=nk07w, 
    https://site.com/member/bryan-t.html?r=nk07w. 
    https://site.com/bryan/test.html?r=nk07w Donec bibendum";
    
    // Регулярное выражение для поиска URL и слова 'bryan'
    // - https?:\/\/(?:www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b(?:[-a-zA-Z0-9()@:%_\+.~#?&\/=]*)
    //   Это паттерн для нахождения URL. Он включает http или https, необязательный www, и остальную часть URL.
    // - (\bbryan\b)
    //   Это паттерн для нахождения слова 'bryan' в тексте. Используем границы слова (\b) чтобы найти точное совпадение.
    //   Скобки вокруг \bbryan\b создают захватывающую группу, которую мы будем использовать в функции обратного вызова.
    $pattern = '/https?:\/\/(?:www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b(?:[-a-zA-Z0-9()@:%_\+.~#?&\/=]*)|(\bbryan\b)/';
    
    // Заменяем слово 'bryan' на 'betty', но только если оно не является частью URL
    $field = preg_replace_callback(
        $pattern, // Паттерн для поиска URL и слова 'bryan'
        function ($matches) {
            // Функция обратного вызова, которая вызывается для каждого совпадения
            // $matches - массив, где:
            // - $matches[0] содержит всё совпадение (URL или слово 'bryan')
            // - $matches[1] содержит только слово 'bryan', если оно найдено
            
            // Если $matches[1] существует, это значит, что найдено слово 'bryan' (вторая группа в паттерне)
            // В таком случае заменяем его на 'betty'
            // Иначе возвращаем оригинальное совпадение (это был URL, который не нужно изменять)
            return isset($matches[1]) ? 'betty' : $matches[0];
        },
        $field // Исходный текст, который мы будем обрабатывать
    );
    
    // Выводим результат
    echo $field;
    Ответ написан
    3 комментария
  • Почему не сохраняются изменения при переборе цикла через foreach?

    delphinpro
    @delphinpro Куратор тега PHP
    frontend developer
    function arraySquaring($arr)
    {
    -   foreach ($arr as $value) {
    +   foreach ($arr as &$value) {
            if (is_array($value)) {
                $value = arraySquaring($value);
            } else {
                $value **= 2;
            }
        }
        return $arr;
    }

    или так
    function arraySquaring($arr)
    {
    -   foreach ($arr as $value) {
    +   foreach ($arr as $key => $value) {
            if (is_array($value)) {
    -           $value = arraySquaring($value);
    +           $arr[$key] = arraySquaring($value);
            } else {
    -           $value **= 2;
    +           $arr[$key] **= 2;
            }
        }
        return $arr;
    }


    Еще вариант
    function arraySquaring($arr)
    {
        return array_map(function($item){
            return is_array($item) ? arraySquaring($item) : $item ** 2;
        }, $arr);
    }

    function arraySquaring($arr)
    {
        return array_map(fn($item) => is_array($item) ? arraySquaring($item) : $item ** 2, $arr);
    }
    Ответ написан
    2 комментария
  • Как правильно хранить время последнего визита пользователя?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега MySQL
    Кардинально ускорить UPDATE не выйдет.

    Если критично время, то лучше класть значение в Redis, а оттуда уже фоновым скриптом переносить в таблицу (если вообще этот шаг нужен, потому что данные жалко потерять).

    Ну или просто сначала отдавать пользователю ответ, а потом в том же скрипте обновлять таблицу.

    Или убрать ON DUPLICATE KEY UPDATE, кидать в таблицу каждый раз новую строку, а потом в фоне её периодически пылесосить от мусора.
    Ответ написан
    1 комментарий
  • Какой тайм-трекер выбрать для фрилансера?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Дружище. У меня для тебя плохие новости. Я тебе советую распрощаться с этой контрой.
    Такого рода менеджмент времени вводят не от хорошей жизни а от плохой. И означает
    он что идет оптимизация ресурсов. И все это очень плохо заканчивается. Люди которые реально
    работают и думают 24/7 о продукте с точки зрения тайм трекинга выглядят не сильно хорошо.
    А те кто умеют тапать хомяка или задней левой ногой шевелить мышкой в фоновом режиме
    - достигают хороших показателей.

    Вобщем беги из этой конторы пока ты психологически еще не выгорел. Ни один нормальный
    работодатель такого обычно не делает.
    Ответ написан
    Комментировать
  • Как сделать так, чтобы nvidia a100 заработала в yandex cloud с драйвером 535 и cuda 12.2?

    @rPman
    У меня только один вопрос, пробовал ли ты устанавливать необходимые версии софта в docker?
    Ответ написан
    3 комментария
  • Что такое AxCMS?

    @maksam07
    Стоит ли использовать эту систему? Какие отзывы/рекомендации?

    Смотри. Я понятия не имею что эта за система, но из их сайта можно сделать вывод, что они перестали обновлять свой продукт примерно в 20-21-м году. Ссылка на блог не работает. Ссылка на твиттер ведет на аккаунт, у которого последний пост был в 21-м. Вряд ли этот продукт будет рекомендоваться к использованию.
    Ответ написан
    2 комментария
  • Какую кодировку выбрать для бд чтобы хранить фото?

    @rPman
    бинарные типы данных binary, varbinary или blob потому и бинарные, что к ним не применяются правила символьной трансляции (charset), т.е. к примеру их нельзя сортировать по алфавиту.

    p.s. настоятельно рекомендую трижды подумать, зачем тебе нужно хранить изображения в базе данных, и с высокой вероятностью лучше их хранить в файлах на диске а в базе только имя файла (а можно и имена файлов привести к идентификаторам базы).
    Ответ написан
    Комментировать
  • Какую кодировку выбрать для бд чтобы хранить фото?

    @alexalexes
    В базе данных, обычно, не хранят бинарные данные файлов.
    Кладете на файловый сервер файл, берете путь к этому файлу и записываете в поле таблицы.
    Если очень приспичило какой-то бинарник положить в поле таблицы, то для этого есть binary/varbinary type.
    Но злоупотреблять возможностью записывать безразмерные данные в одно поле не стоит - намучаетесь с бекапами.
    Ответ написан
    Комментировать
  • Какую кодировку выбрать для бд чтобы хранить фото?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Любую. На BLOB кодировка не влияет.
    Но по уму фотографии не хранят в БД. Их записывают как отдельные файлы с уникальными именами, а в базе хранят оригинальное имя файла и путь к файлу.
    Ответ написан
    Комментировать
  • Какую базу данных использовать для хранения метаданных?

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

    Если не нужно следить за целостностью данных и искать по атрибутам, только по идентификатору, то подойдёт любая база данных, даже простое хранение файлов на объект с любой сериализацией данных, современные файловые системы отлично работают с миллионом файлов в каталоге (правда при таких объемах я бы все же советовал норм базу), причем никакая реализация бд не будет давать быстрее доступ чем чтение файла.

    Круче только хранение данных в каком-нибудь постом формате в блочном устройстве диска или раздела (например идентификатор записи - ее смещение в файле, а там как то хранить ее размер и сами данные), ни одна другая реализация не даст чтение и запись быстрее (под вопросом удаление записей, но и тут есть эффективные решения), ну только что своя реализация кэширования данных, но это очень хардкор...
    Ответ написан
    8 комментариев
  • Какую базу данных использовать для хранения метаданных?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Основной use-case при работе с любыми данными это "запрос".

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

    Ничего плохого не могу сказать про Mongo. Но загрузи сначала туда хотя-бы сотню тысяч
    ситетических документов и смоделируй нагрузку. Вдруг Монга уже на этом этапе захлебнется
    и не потянет. Получается что твой выбор был неправильный.

    Из личного опыта. Часто выбирают какую-то БД из того что человек (команда) уже раньше
    с ней поработали и уже имеет опыт. И такое реально было и с Ораклом и с MS-SQL. Люди их
    выбирали не потому что они хороши а чаще всего потому что "так привыкли". И десяток
    лицензий были уже давно куплены. Почему-бы не использовать. Заказчик оплатил.
    Так жить проще. Так и живут. И так строят архитектуры.
    Ответ написан
    4 комментария
  • Как запаролить сайт?

    @motcart
    В корень сайта запишите файл .htpasswd в логином и паролем
    Ответ написан
    Комментировать
  • PHP: Почему 'mb_convert_encoding' не конвертирует простую строку?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    по тому что гладиолус документация?
    Ответ написан
    4 комментария
  • PHP: Почему 'mb_convert_encoding' не конвертирует простую строку?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    - var_dump( $str );
    + echo bin2hex($str);
    Получаем cf f0 e8 e2 e5 f2 20 32 30 31 39 20 cc e8 f0 21
    Открываем таблицу cp1251 и смотрим
    cf - П, f0 - р, e8 - и, e2 - в, e5 - е, f2 - т, 20 - пробел, 32 - 2, 30 - 0, 31 - 1, 39 - 9, 20 - пробел, cc - М, e8 - и, f0 - р, 21 - !
    Привет 2019 Мир!
    Всё вполне сконвертировалось.
    Ответ написан
    Комментировать
  • Как корректно искать по регулярным выражениям в SQL?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    Документацию полезно иногда читать.
    В ней шрифтом по фону написано, что
    To use a literal instance of a special character in a regular expression, precede it by two backslash (\) characters. The MySQL parser interprets one of the backslashes, and the regular expression library interprets the other.
    Ответ написан
    1 комментарий
  • Как запаролить сайт?

    @tyxeo
    дальний знакомый Мурыча
    используй на сервере базовую аутентификацию
    Ответ написан
    Комментировать
  • Почему форма обратной связи php отправляет часть кода?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    1) Тело хтмл письма, как и любой подвид иксмл, должно начинаться с оперделяющих тегов, у вас же тупо табличка отправляется.
    2) Заниматься мастурбациейфигней с отправкой через mail() в 21 веке как минимум стыдно, как максимум чревато проблемами при отладке и смене функциональности, не говоря уже о том что отправка хтмл контента и приложений становится задачей со звездочкой.
    3) Все легко решается переходом на нормальную библиотеку отправки почты, пхпмэйлер/свифтмэйлер и их многочисленные аналоги.
    Ответ написан
    3 комментария
  • Где формируется массив с данными #ORDER_LIST#?

    @koder_1
    Битрикс программист
    Не нужно совсем использовать #ORDER_LIST# в почтовом шаблоне, вместо него есть специальные почтовые компоненты для оформления заказа,
    в них есть вся информация и можно им задать свой кастомный шаблон.
    Ответ написан
    Комментировать
  • Есть ли смысл сбрасывать винду (11 вер.) до заводских настроек при подозрении на троян/шпион?

    @rPman
    Если все работает, вирусов не обнаружено (можете для спокойствия проверить машину каким-нибудь livecd kasperski/drweb у обеих компаний они бесплатные для домашнего использования), то достаточно сменить пароли на сервисах, о доступе к которым у вас есть опасения (а так же проверить наличие удаленных подключений, типа как сессии у whatsup/telegram/..., хотя обычно при смене пароля они удаляются).

    Сброс до заводских настроек откатит состояние системы назад, затем система будет загружать и устанавливать обновления, считай часы - сутки, в зависимости от интернета и скорости диска/ssd... так же придется устанавливать все приложения заново, а если не использовались облачные аккаунты браузера - восстанавливать и их настройки, в общем процесс не моментальный и к нему придется готовиться заранее.
    Ответ написан
    Комментировать