Ответы пользователя по тегу PHP
  • Как сделать тяжелый импорт из excel 800к товаров?

    solotony
    @solotony
    покоряю пик Балмера
    оптимально по быстродействию - LOAD DATA INFILE. но "минус" - валидацию не выполнить, и обновление тоже

    если нужна валидация - надо парсить самостоятельно. Для ускорения SQL делайте вставки пакетами
    insert ignore ..... values (),(),() ...

    если нужно обновление
    insert ignore ..... values (),(),() ... on duplicate key update

    если скрипт обрубается лимитами - создавайте задание, и обрабатывайте по крон

    800К это не много.
    Ответ написан
    Комментировать
  • Как правильно обрабатывать входящие данные?

    solotony
    @solotony
    покоряю пик Балмера
    1) использовать фреймворк который это уже делает

    2) писать фреймворк самому.

    вопрос у тебя задача какая ?
    Ответ написан
    Комментировать
  • Варианты снижения потребления форками PHP памяти?

    solotony
    @solotony
    покоряю пик Балмера
    используй pthreads вместо форков
    Ответ написан
  • Как запустить фоновый php?

    solotony
    @solotony
    покоряю пик Балмера
    Ответ написан
    Комментировать
  • Как работает функция phpmail?

    solotony
    @solotony
    покоряю пик Балмера
    отправка почты "методом php" не является хорошим способом, потому что ваша почта идет через все фильтры и сервера провайдера и высока вероятность потери/недоставки письма (особенно это касается мелких провайдеров)

    наиболее "правильный" способ на сегодня - отправлять через крупную почтовую службу (яндекс, mail, google), а им почта в свою очередь доставляется по защищенному SMTP напрямую из вашего php скрипта.
    Ответ написан
    Комментировать
  • Как зарегистрировать класс в PHP?

    solotony
    @solotony
    покоряю пик Балмера
    потому что use импортирует имена а не подгружает файлы

    вот так все будет работать

    <?php
    
    require_once 'test\Test.php';
    use test\Test;
    
    $a = new Test;
    
    var_dump($a);
    
    ?>


    либо без use

    <?php
    require_once 'test\Test.php';
    
    $b =  new test\Test;
    
    var_dump($b);
    ?>
    Ответ написан
  • Как сделать регулярное выражение для проверки номера?

    solotony
    @solotony
    покоряю пик Балмера
    либо проверяй на точное соответствие шаблону простой регуляркой, либо не имеет смысл так мучаться, потому что вариантов написания 100500 : 8(86-141) 3-39-40 , +375 (44) 560-51-74 , поэтому проверяй то что останется после удаления скобок, пробелов и дефисов
    Ответ написан
    Комментировать
  • Что означает эта фраза в документации?

    solotony
    @solotony
    покоряю пик Балмера
    это означает что декларированный Mime может не соответствовать тому что реально передано. и PHP это не проверяет.

    Как его проверить на клиенте?

    клиент его передает

    И как проверит на сервере?

    посмотреть содержимое файла.

    в UNIX- системах это делает команда file -i
    Ответ написан
    Комментировать
  • Как узнать версию MySQL, если имеешь доступ только к ftp и консоли Wordpress?

    solotony
    @solotony
    покоряю пик Балмера
    в конфиге WP смотришь параметры коннекта к базе

    /** The name of the database for WordPress */
    define('DB_NAME', 'assolo0k_clex');
    
    /** MySQL database username */
    define('DB_USER', 'assolo0k_clex');
    
    /** MySQL database password */
    define('DB_PASSWORD', '**************');
    
    /** MySQL hostname */
    define('DB_HOST', 'localhost');
    
    /** Database Charset to use in creating database tables. */
    define('DB_CHARSET', 'utf8');


    далее доступным тебе способом выполни запрос к базе SHOW VARIABLES LIKE "%version%

    я делаю это из командной строки

    mysql -uassolo0k_clex -p********* -Dassolo0k_clex -e'SHOW VARIABLES LIKE "%version%";'

    +-------------------------+---------------------------------+
    | Variable_name           | Value                           |
    +-------------------------+---------------------------------+
    | innodb_version          | 5.7.20-19                       |
    | protocol_version        | 10                              |
    | slave_type_conversions  |                                 |
    | tls_version             | TLSv1,TLSv1.1                   |
    | version                 | 5.7.20-19-beget-5.7.20-20-1-log |
    | version_comment         | (LTD BeGet)                     |
    | version_compile_machine | x86_64                          |
    | version_compile_os      | Linux                           |
    +-------------------------+---------------------------------+


    а ты можешь написать на PHP что-то вроде, залить по FTP и выполнить через http

    $con = mysql_connect('HOSTNAME','USERNAME','PASSWORD');
    mysql_select_db('DATABASENAME', $con);
    $query = "SHOW VARIABLES LIKE '%version%'";
    $result = mysql_query($query);


    надо смотреть не только на версию, но и на другие переменные - например актуально на сегодня поддержка utf8_mb4, длина ключа, если поддерживается utf8_mb4
    Ответ написан
    Комментировать
  • Как найти PHP на Windows10?

    solotony
    @solotony
    покоряю пик Балмера
    переменная среды path. там прописан путь к исполняшке.
    Ответ написан
    1 комментарий
  • Что нужно возвращать: null или false?

    solotony
    @solotony
    покоряю пик Балмера
    а я думаю что совершенно безразлично что возвращать. главное - написать спецификацию и соблюдать еще. ну и конечно в рамках одного проекта наверно надо соблюдать единый стиль.

    можно еще возвращать объект "ответ" который содержит результат - успешно/не успешно, данные ответа, код ошибки

    по поводу исключений - исключения это способ "красивого" аварийного завершения работы.
    Ответ написан
    Комментировать
  • Разве Composer бесполезен в 2017?

    solotony
    @solotony
    покоряю пик Балмера
    вопрос работать там или нет зависит от денег которые там платят. если ты можешь выполнять работу и получать за нее хорошую оплату - почему бы не делать ее? То что ты несогласен с требованиями - всегда будет что-то что тебя раздражает.
    Ответ написан
    Комментировать
  • Выполнение скрипта раз в 5 секунд?

    solotony
    @solotony
    покоряю пик Балмера
    использовать процессы/потоки. родитель раз в 5 секунд плодит по новому процессу. детские процессы. отрабатывают твои задачи.
    Ответ написан
    Комментировать
  • Что такое ?? в php и почему нету нигде информации?

    solotony
    @solotony
    покоряю пик Балмера
    php.net/manual/ru/language.operators.comparison.php

    Оператор null coalescing

    если значение первого операнда не null - то первый операнд, иначе - второй
    Ответ написан
    Комментировать
  • Фреймворк PHP без установки?

    solotony
    @solotony
    покоряю пик Балмера
    современные PHP-фреймворки собраны при помощи composer-а, при установке они собирают все свои зависимости в единое целое.

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

    solotony
    @solotony
    покоряю пик Балмера
    фреймворк - это куча полезных библиотек, модулей. фреймворк - это готовый каркас для вашего приложения. используя фреймворк вы пишите только "бизнес-логику" вашего приложения.
    Ответ написан
    1 комментарий
  • Php отправка email через smtp выдает undisclosed-recipients в чем проблема?

    solotony
    @solotony
    покоряю пик Балмера
    лень разбираться в твоем скрипте но ошибка однозначно говорит что получатели не указаны. скорее всего ты неверно формируешь поле To и/или rcpt to .. хотя может быть вариант релея при непройденной аутентификации. Сделай полный лог всего обмена - и поймешь
    Ответ написан
    Комментировать
  • На сколько хороша/плоха идея перенести сайт на АПИ для этого же сайта?

    solotony
    @solotony
    покоряю пик Балмера
    Максим Компаниец, ну делай, если это обосновано реальными потребностями. если же у тебя 1 сервер который сам у себя запрашивает - какой в этом смысл ?

    ну и в твоем варианте (когда ты указываешь УРЛ) curl все равно будет использоваться. так что учти что у тебя будет двойная нагрузка на сервер . а если с одной страницы несколько вызовов к api - то не только двойная.

    если у тебя сервер (предоставляющий api) и клиент этого api на одной машине, то для их общения есть много более эффективных способов нежели вида getApi( '/api?method=1&param=2&param3=1232' );
    Ответ написан
    Комментировать
  • Как въехать в программирование (ООП, паттерны)?

    solotony
    @solotony
    покоряю пик Балмера
    проблема понимания ООП на 90% - в плохих переводах которые делаются хрен знает кем и хрен знает как. зачастую люди вообще слабо понимают о чем пишут (переводят) либо у них проблемы с языком изложения.
    либо авторы страдают неудержимыми приступами графомании.

    почему-то мне кажется что все ООП можно изложить схематически на 3-х тетрадных листочках

    Я сам изучал ООП на С++ (по страуструпу лет 25 назад), но парадигмы остаются такими же - наследование, инкапсуляция, полиморфизм.

    а Dependency Injection - просто как мычание. "в объект при его создании (как правило при создании ) передаются объекты от которых он зависит"
    Ответ написан
    1 комментарий
  • PHP. Как реализовать чтение из CSV для скрипта?

    solotony
    @solotony
    покоряю пик Балмера
    Как-то так

    $f = fopen($filename, "r");
            // Читать построчно до конца файла
            while (!feof($f)) {
    
                $r = fgets($f);
    
                if ($encoding != 'UTF-8') {
                    $r = mb_convert_encoding($r, 'UTF-8', $encoding);
                }
    
                chop($r);
                if (!$r) {
                    continue;
                }
    
                $arr = preg_split('/;/', $r);
                if (!is_array($arr)) {
                    continue;
                }
    Ответ написан
    5 комментариев