Задать вопрос
  • Почему все файлы добавляются в коммит?

    DevMan
    @DevMan
    именно из-за них: любое изменение в файле (вайтспейс и/или перенос строк) – измененный файл.
    Ответ написан
    Комментировать
  • Какая разница между пакетами, зависимостями, extensions, модулями?

    glaphire
    @glaphire Куратор тега PHP
    PHP developer
    Обычно это одно и то же в контексте дополнений к php или библиотек в ОС, от которых зависят эти дополнения.
    Тут на реддите был интересный топик, который раскрывает нюансы
    What's a difference between PHP extension and PHP ...
    Ответ написан
    Комментировать
  • Можно ли отправить в CURLfile только что полученный файл, не записывая его на диск?

    nokimaro
    @nokimaro
    Меня невозможно остановить, если я смогу начать.
    В PHP 8.1 появится нативный класс для этого CURLStringFile
    https://www.php.net/manual/ru/migration81.new-feat...

    Для версии PHP < 8.1 можете использовать полифилл
    if(!class_exists('CURLStringFile')) {
    
    class CURLStringFile extends CURLFile {
        public function __construct(string $data, string $postname, string $mime = "application/octet-stream") {
            $this->name     = 'data://'. $mime .';base64,' . base64_encode($data);
            $this->mime     = $mime;
            $this->postname = $postname;
        }
    }
    
    }
    
    $jpg_curlfile = new \CURLStringFile($res, 'screenshot.jpg', 'image/jpeg');
    
    $ch = curl_init('http://example.com/upload.php');
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, ['file' => $jpg_curlfile]);
    curl_exec($ch);


    2. Можно полностью эмулировать Multipart/form-data и вручную расставлять boundry и тд
    3. Можно использовать временные файлы функцией tmpfile() и тогда файл сам удалится при завершении скрипта (кроме аварийных случаев завершения)
    Ответ написан
    Комментировать
  • Что не так с функцией?

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

    Программисты не задают посторонним вопрос, "почему мой код не работает".
    Они задают его своему коду.

    Вы уже начали отлаживать свой код, выводя промежуточные результаты. Это очень хорошо. Но почему-то тут же остановились

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

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

    nokimaro
    @nokimaro
    Меня невозможно остановить, если я смогу начать.
    Формат jpeg в который вы сохраняете картинку в конце imageJpeg($image); не поддерживает прозрачность
    Используйте для сохранения формат поддерживающий прозрачность, например: png, webp, gif
    Ответ написан
    1 комментарий
  • Как сделать вывод последнего сообщения между двумя юзерами?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    сообщение - это три значения: id, from_id (отправитель), to_id (получатель), msg (сообщение).
    Точно три??? А то я плохо считаю на пальцах... А еще неплохо было бы дату сообщения как то хранить, и собсно по ней сортировать...

    Мы получим дупликаты. Как поступить?
    Дубликаты чего?

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

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Просто в нормальном коде такой хрени не происходит. Даже если так случилось что отправка у вас методом пост, ну допустим надо так, то при обработке запроса на сервере делается редирект методом гет, по этому при перезагрузке ничего не отправляется повторно.
    Ответ написан
    Комментировать
  • Как протестировать производительность функций начинающему php-разработчику?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Как абсолютно верно заметил Роман Юрьевич Ипатьев, проблема не в вызове аргументов, а в абсолютно нелогичном подходе к архитектуре, которая тут просто швах...

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

    Файл RouteController.php обрабатывает URL
    уже плохо, контроллер не должен знать что-то про урл и прочие переменные извне. Для этого есть роутер и реквест.

    и делает вывод о типе контроллера (гость, авторизованный пользователь или администратор).
    Как тип контроллера соотносится с ролью пользователя?

    Создаёт объект этого контроллера и отправляет в него аргументами (str)имя контроллера и (str) полученный URL.
    У вас же уже вызван контроллер, RouteController.php, либо он не контроллер, либо зачем тогда снова контроллер создавать? И зачем ему урл?

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

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

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

    myks92
    @myks92 Куратор тега PHP
    Нашёл решение — пометь вопрос ответом!
    unlink() - удалить файл.
    Ответ написан
    Комментировать
  • Почему не выводится последний элемент из бд mysql?

    @galaxy
    'text' => 'Текст секретного сообщения: ' . $messages,

    И что такое $messages? Кто ему присвоил значение?

    message_get() каким образом, по-вашему, вообще возвращает текст сообщения или хоть что-нибудь?

    Last but not the least: сделал mysqli_query(... "SELECT ..."), сделай уж потом и fetch*
    Ответ написан
    Комментировать
  • Почему крашится комп без видимых причин?

    hint000
    @hint000
    у админа три руки
    Оперативку тестируйте в memtest86, несколько циклов (5..10).
    Поскольку материнка и процессор старенькие, то логично предположить, что и оперативка того же возраста. Чипы памяти с возрастом деградируют быстрее, чем процессор, так что после нескольких лет вероятность ошибок памяти существенно возрастает. А у вас ещё и HyperX, которую с завода разгоняют сверх всякой меры, она с рождения работала на пределе своих физических возможностей.
    Можете в BIOS вручную занизить частоту оперативки.

    Материнка, конечно, тоже могла начать подглючивать за столько-то лет. Это второй подозреваемый после памяти.
    Ответ написан
    8 комментариев
  • Как поднять сервис с помощью bash скрипта?

    karabanov
    @karabanov Куратор тега Linux
    Системный администратор
    Впиши абсолютные пути до утилит и файлов.
    Либо задай переменные окружения $PATH и $HOME.

    Cron в Linux: история, использование и устройство
    Ответ написан
    2 комментария
  • Как взять последнее значение с цикла for?

    @sl0
    $leadTag = $leadLists['_embedded']['leads'][499]['_embedded']['tags'][0]['name'];
    Ответ написан
    Комментировать
  • Как понять чем занято место на диске выделенного сервера?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    Заходите в корень, делаете du -hs *. Смотрите вывод, захотите в каталог, который много, на ваш взгляд, занимает, повторяете команду.

    Ещё есть ncdu, она поудобнее, но нужно отдельно ставить.

    P.S. - обычно первый подозреваемый садовник логи.
    Ответ написан
    1 комментарий
  • Как записать Windows на флешку из-под Linux?

    @rPman
    В режиме UEFI на флешку, отформатрованную FAT32 достаточно скопировать содержимое ISO образа, и все должно работать, так как биос будет искать в корне флешки каталог EFI итам boot...

    Но вот в legacy режиме, когда нужен бут сектор, могут возникнуть нюансы. Например на старых машинах, у меня не удавалось загрузитьс я с флешек объемом больше 8Гб. Так же могут быть проблемы, если флешка подключается через картридер (например это карта памяти).

    В особых случаях (когда в биосе есть пункт меню что то типа загрузиться с usb cdrom) рабочую загрузочную флешку удавалось создать простым посекторным копированием образа с помощью dd, так что пробуй.

    p.s. можно загрузиться в установщик windows, загрузившись сначала в linux grub (ты говоришь проблем с linux нет), нажимаешь C чтобы войти в командный режим grub
    ls (hd0,1)/

    покажет содержимое диска 0 раздела 1, перебирая цифры найди раздел флешки, где развернут установщик windows
    set root=(hd0,1)
    chainloader +1
    boot


    p.p.s. можно первый этап установки, до первой перезагрузки, провести в виртуальной машине, подключив физический диск как диск виртуалки, это 100% работало всегда и позволяет вообще не делать загрузочный диск windows, т.е. хватит iso образа
    Ответ написан
    Комментировать
  • Автокликер на линукс?

    gbg
    @gbg Куратор тега Linux
    Любые ответы на любые вопросы
    удобный,простой интерфейс.

    LINUX

    Поздравляю, вы успешно поделили на ноль.

    Инструмент называется xdotool и вызывается из консольки:
    xdotool mousemove 100 100 click 3
    Ответ написан
    2 комментария
  • Как работает докер и нужен ли он для веб-приложений?

    fox_12
    @fox_12
    Расставляю биты, управляю заряженными частицами
    1. Если контейнер содержит в себе веб-сервер, бд, то при написании второго приложения и его запуске в системе будет крутиться два веб-сервера?

    Да. Но ничто не мешает использовать впереди один веб-сервер, и обслуживать им два контейнера с веб-приложениями.
    2. Насколько вообще оправдано использование докера например при написании веб-приложения на python?

    Одно окружение что на сервере, что на рабочей станции разработчика.
    Отличная интеграция в CI/CD на практике.
    Нет необходимости засорять машину разработчика кучей установленных БД разных версий, доп. ПО и прочего.
    Легкость развертывания и прочее.
    Так что достаточно оправданно...
    3. Если хост-система Windows, то для работы с докером нужно запускать виртуальную машину с Linux и на ней разворачивать докер?

    Докер есть и под windows
    Ответ написан
    1 комментарий
  • Делают ли MarketPlace на Java Spring?

    inoise
    @inoise
    Solution Architect, AWS Certified, Serverless
    Переписывание кодовой базы имеет смысл в подавляющем числу случаев только тогда когда стоимость поддержки серьезно возрастает и количество технического долга начинает резко возрастать. Смена технологического стека, особенно в случае Java ничего не поменяет кроме возросшей стоимости разработки и поддержки, а также затрат на переписывание. Затраты огромны, бизнес-ценность нулевая
    Ответ написан
    3 комментария
  • Как установить PHP 7.4.15 на Ubuntu 20?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    Видимо, как-то не так гуглили. Если в репозитории недостаточно свежая для вас версия - варианта два: найти другой репозиторий, с подходящими пакетами, либо собрать самостоятельно из исходников. И то, и другое прекрасно гуглится.
    Ответ написан
    Комментировать