• Почему в моем коде заменяется только одно значение, а не все?

    nokimaro
    @nokimaro
    Меня невозможно остановить, если я смогу начать.
    Заменяя </head> вы как минимум уже получаете невалидный html
    Сделать можно так, при условии что у вас в $html есть </style> внутрь которого вы и хотите свои стили дописать
    foreach ($this->_styles as $tag => $style) {
        $styles = $tag . '{' .$style. '}'."\n";
        $html = str_replace('</style>', $styles.'</style>', $html);
    }
    Ответ написан
    Комментировать
  • Почему в WP ошибка Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 33554440 bytes)?

    @alexalexes
    while ($query->have_posts()) // вероятно, это всегда true
    {
    $result[] = [ // тут мы без конца наполняем массив - получаем переполнение памяти
                ];
    }
    Ответ написан
    Комментировать
  • Как найти первую стажировку или работу джуна по python?

    Maksim_64
    @Maksim_64
    Data Analyst
    1. Не нужно искать стажировку.
    С учетом что у тебя нет коммерческого опыта (шансы работа) / (шансы стажировка) > 1

    2. При поиске работы не нужно откликаться только на вакансии без опыта, откликайся на все ну и что, что у тебя будет автоматических отказов > 99 процентов, есть еще 1. Некоторые вакансии предполагают выполнение тестовых заданий. В некоторых вакансиях написано требуется опыт при этом зарплата сильно ниже рынка. Твоя первая задача это научится хоть какой-то фидбек получать от потенциального работодателя, созвон хотя бы. Стремись попасть на собеседование даже если у тебя нет шансов его пройти.

    3. Говори что официально не работал, но есть не официальный опыт. Сделай порфолио, что бы было что показать в резюме.

    С таким подходом на каждые 200 откликов твоя ожидаемая величина 2-5 потенциальных фидбека, 0-2 собеседования. Дальше, как справишься. Подводя итог, когда некое событие маловероятно то лучший рецепт это активность. Не нужно самому добровольно себя обесценивать. Скорее всего рынок заплатит тебе мало, но это совершенно не одно и тоже, когда ты сам, себя обесцениваешь подходом дайте шанс, я почти ничего не умею, но научусь и т.д. и т.п.
    Ответ написан
    1 комментарий
  • Как правильно задать запрос UPDATE где название столбца переменная?

    Anastasia2306
    @Anastasia2306
    PHP-разработчик.
    Как насчет оператора CASE?

    $sql = "UPDATE `list` 
            SET count1 = CASE WHEN id = ? AND ? = 1 THEN count1 - ? ELSE count1 END,
                count2 = CASE WHEN id = ? AND ? = 2 THEN count2 - ? ELSE count2 END,
                count3 = CASE WHEN id = ? AND ? = 3 THEN count3 - ? ELSE count3 END
            WHERE id = ?";
    
    $stmt = $conn->prepare($sql);
    
    foreach ($data as $id => $value) {
        $idParts = explode("-", $id);
        $count = $value['count'];
        $stmt->execute([$idParts[0], $idParts[1], $count, $idParts[0], $idParts[1], $count, $idParts[0], $idParts[1], $count, $idParts[0]]);
    }


    Здесь используется оператор CASE для обновления нужного столбца в зависимости от значения $idParts[1]. Если $idParts[1] не соответствует ни одному из условий, то значение столбца остается неизменным. Ну и не забываем про подготовленный запрос prepare чтобы избежать возможной инъекции
    Ответ написан
    7 комментариев
  • Как распознавать в php слова (типо систем компьютерной алгебры)?

    @alexalexes
    Берете любую вузовскую методичку по дисциплине "Теория языков программирования и методов трансляции".
    Изучаете, с чем едят грамматики формальных языков, строите лексический анализатор, синтаксический анализатор, транслятор в свой машинный код, исполнитель машинного кода.
    На выходе у вас должна получиться вот такая штука:
    https://studfile.net/preview/937093/
    Ответ написан
    Комментировать
  • В поиске первой работы програмистом, предлагают бесплатную стажировку. Соглашаться?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    Народ тут накинул на вентилятор, попробую раскидать по фактам: Варианта на самом деле 3, но мы сведем к очевидным 2:
    1) Вы ищете первую работу в стеке, из опыта у вас приложение ТуДуЛист и Хеловорлд.
    Такое предложение как минимум подарок, как максимум большая удача. Подарок если вам просто дадут поколупаться в серьезном проекте и покажут как работает команда в целом. Большая удача если при этом у вас будет вменяемый ментор и ревьювер, а кода писать вам дадут много. Для конторы это скорее всего в минус, но если у вас все пойдет норм, то к концу срока вы в любом случае уже будете тянуть на джуна. Даже если после этого вы расстанетесь, опыт штука которая навсегда останется с тобой, в крайнем случае вы в первый месяц можете спокойно свалить, если видите что вам там ничего не светит в плане роста. Короче кейс - "надо брать".

    2) Вы уже работали со стеком, знаете как работать с основными инструментами и работали с проектами посложнее чем в первом варианте.
    Если еще и в конторе с какой-никакой командой, то вообще другой коленкор. В данном случае спокойно отказывайтесь, если вам жалко 3 месяца нахаляву работать. Опять же, неплохо было бы хотя бы узнать что в эти 3 месяца вы будете делать забесплатно, возможно ли перейти сразу к фазе 2 в случае вашей очевидной компетенции и т.д., короче есть смысл разговаривать ртом. Короче кейс - "надо поговорить".

    третий вариант по сути нечто среднее, но опять же сводится к 2 - надо говорить.
    Ответ написан
    3 комментария
  • После регистрации пользователь в базу таблицы users не попадает..В чем проблема?

    @iljaGolubev
    Явно включите
    class Database{
    ...
        public function __construct(){
            try {
                $this->conn = new PDO($this->dsn,$this->dbuser,$this->dbpass);
                 $this->conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);


    Отключите на время отладки js обработчик формы.
    - добейтесь работы стандартным .

    Убедитесь, что вообще в нужный кусок кода попадает
    if(isset($_POST['action']) && $_POST['action'] == 'register'){
       die('POST WORK');
    Ответ написан
    Комментировать
  • Когда нужен MVC, а когда API?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    API есть у любой программы. MVC это способ организации кода, наличия API он не исключает. Не стоит сравнивать тёплое с мягким.
    Ответ написан
    3 комментария
  • Зачем абсолютный путь программ записывают в переменные, чтобы вызывать их не через название, а через путь?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    Затем, чтобы быть уверенным, что скрипт выполнится в любом окружении - даже там, где каталоги с бинарниками не добавлены в PATH.
    Ответ написан
    7 комментариев
  • Как выбрать данные, если нет в одной таблице, то взять из другой?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    COALESCE?
    SELECT
        comment.*,
        COALESCE(users.avatarInGames, usersCache.avatarInGames) AS avatarInGames,
        COALESCE(users.gameId, usersCache.gameId) AS gameId
    FROM comment
    LEFT JOIN users ON comment.UID = users.userId
    LEFT JOIN usersCache ON comment.UID = usersCache.userId
    WHERE comment.status = 1
    ORDER BY comment.OID DESC;

    COALESCE(users.avatarInGames, usersCache.avatarInGames) AS avatarInGames avatarInGames берет из users или если его там нет, то возьмет из usersCache.
    Ответ написан
    2 комментария
  • Php не видит name из html. Уверен, что все верно написано. Что делать?

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

    PabloEscobar213, смотри, у тебя тут куча ошибок. Начнем с азов.

    1) Форма считается отправленной только после того как ты нажал кнопку типа submit и данные ушли на сервер (есть другие способы, но мы их сейчас трогать не будет). Кнопку, как вижу, ты уже добавил. Но теперь надо на нее кликнуть. что бы данные из формы ушли на сервер.

    2) Дальше. Вывод формы в браузер и обработка/отправка данных это разные действия. И они могут быть в разных файлах. Например если бы у тебя форма была в index.html, а отправлял ты ее в send.php, а потом делал бы редирект обратно на форму, то все было бы проще.

    Но ты сделал все в одном файле. Значит что? Значит в коде надо понимать когда именно ты отправляешь данные. Тебе про это выше писали. Сейчас ты видишь ошибки на этапе отображения формы, а не отправки. В коде надо проверять что суперглобальный массив $_POST не пустой или что ты отправляешь данные через метод POST.

    if ($_POST) {
      // Здесь пишешь код подключения к базе и отправке
    }
    Ответ написан
    5 комментариев
  • Почему не записываются emoji в базу данных?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Бд mysql wp должна иметь кодировку utf8mb4 (поддерживает хранение символов юникод втч. эмоджи), а вот utf8 в mysql не поддерживает 4 байтные символы, к которым относятся и эмоджи, из за чего они заменяются на знаки вопроса.

    wp-config.php:
    define('DB_CHARSET', 'utf8mb4');
    define('DB_COLLATE', 'utf8mb4_unicode_ci');

    И изменяем кодировку таблицы бд c utf8 на utf8mb4.
    Ответ написан
    6 комментариев
  • Зависит ли скорость записи в БД от количества в ней записей?

    @Akina
    Сетевой и системный админ, SQL-программист.
    1. Меняется/Зависит ли как-то скорость записи в таблицу БД от количества записей в таблице?

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

    2. Меняется/Зависит ли как-то скорость записи в таблицу БД от количества таблиц в БД?

    В MySQL - нет.

    3. Меняется/Зависит ли как-то скорость записи в таблицу БД от количества записей в соседних таблицах БД?

    В MySQL - нет. За исключением случая, когда пополняемая таблица имеет внешний ключ на другую таблицу. Но и в этом случае есть факторы, которые влияют на скорость записи гораздо сильнее.

    Да и разница в значении параметра "количество записей" должна быть на несколько порядков, чтобы разница по скорости записи была хотя бы не меньше точности измерения.
    Ответ написан
    Комментировать
  • Как записать массив PHP в базу данных MySQL?

    rozhnev
    @rozhnev Куратор тега PHP
    Fullstack programmer, DBA, медленно, дорого
    Если массив не очень большой - сделайте всё одним запросом:
    <?php
    $data = [
        ['a' => 1, 'b' => 2, 'c' => 3],
        ['a' => 1, 'b' => 2, 'c' => 3],
        ['a' => 1, 'b' => 2, 'c' => 3],
        ['a' => 1, 'b' => 2, 'c' => 3],
        ['a' => 1, 'b' => 2, 'c' => 3]
    ];
    
    $query="INSERT INTO t (a, b, c) VALUES " . implode(
        ', ', 
        array_fill(
            0,
            count($data), 
            '(' . implode (', ', array_fill(0, count($data[0]), '?')) . ')'
        )
    );
    
    echo $query;
    
    $values = array_reduce(
        $data,
        function($ac, $el) {
            return array_merge($ac, array_values($el));
        },
        []
    );
    
    var_export($values);
    
    $q=$pdo->prepare($query);
    $q->execute($values);


    Здесь вы можете протестировать код
    Ответ написан
    1 комментарий
  • Как возвести в степень в php?

    GavriKos
    @GavriKos
    Цикл + умножение.
    Ответ написан
    Комментировать
  • Можно ли как либо защитить php-проект от "угона" другим наёмным программистом (фрилансером)?

    @Shavadrius
    Как по мне не имеет большого смысла. Если ключевое "ноу-хау" в самой идее, то ее можно понять просто имея доступ к интерфейсу приложения. Если вся суть в каких-то хитрых алгоритмах, пайплайнах или расчетах - то их можно скрыть за микросервисом, как тут отмечали ранее.
    Больше влияет рейтинг, клиентура, реклама, продвижение, собственно, бренд. Аналогов всего и вся сотни, но знакомы многие только с единицами.
    Ответ написан
    1 комментарий
  • Не получается загрузить класс через spl_autoload_register, как исправить?

    @Aqulus Автор вопроса
    Решил проблему тем, что перешёл на неймспейсы и в своём extension.php отдельно(независимо от composer autoloader'a) подключал файлы плагинов.

    spl_autoload_register(function ($class)
    				{
    					$path = str_replace('\\', '/', \Application::getRootDirectory() . '/src/addons/' . $class . '.php');
    
    					if (!file_exists($path))
    					{
    						throw new \Exception("Файл расширения {$class} по пути {$path} не найден!");
    					}
    					else
    					{
    						require $path;
    					}
    				});


    Спасибо Дмитрий !
    Ответ написан
    4 комментария
  • Ошибка Fatal error: Uncaught PDOException: SQLSTATE[HY093]: Invalid parameter number: parameter was not defined?

    delphinpro
    @delphinpro Куратор тега PHP
    frontend developer
    https://phpfaq.ru/pdo/parameter_was_not_defined
    Пункт 4
    Мог бы и сам загуглить...
    Ответ написан
    Комментировать
  • Как добавить всплывающее окно на сайт 1с битрикс?

    godsplane
    @godsplane
    1. Заходим на https://freelance.habr.com/
    2. Ищем исполнителя
    3. Оплачиваем заказ
    4. Получаем результат
    Ответ написан
    Комментировать
  • Почтовая система для linux?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    Почта - это сложно. Нет такой серебряной пули, которую "поймёт любой админ". А вот если это пожелание убрать - вариантов становится много.
    Ответ написан
    4 комментария