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

    @rPman
    Этот алгоритм пытается сохранить все сгенерированные слова в памяти, это 64^5 строк на это никакой оперативки не хватит

    Вместо
    $words[] = $prefix;
    вставь свой код, который сейчас в цикле
    // My Code ...

    либо оформи его вызов через анонимную функцию, так синтаксически будет красивее
    Ответ написан
    Комментировать
  • Как лучше и проще организовать на сайте RealTime notification?

    @rPman
    современное решение - websocket (позволяет серверу слать сообщения веб-клиентам)

    поддерживается всеми браузерами, есть огромное количество реализаций сервера, в т.ч. на php (рекомендую reactphp асинхронный, на нем же и сам http бакэнд делать нормально, а nginx снаружи проксирует запросы)
    Ответ написан
    Комментировать
  • Как регуляркой извлечь из html-кода элемент с определённым классом?

    @rPman
    так и не понял почему нельзя использовать адекватные инструменты?
    simple_html_dom например?
    Ответ написан
    3 комментария
  • Как регуляркой не просто удалить, но и возвратить удаляемое из строки?

    @rPman
    preg_replace_callback не подходит? будет вызывать твой метод для обработки каждого найденного вхождения чтобы получить строку, на которую ее нужно заменить
    Ответ написан
  • Как устроить поиск и вывод всех найденных значений из csv файла PHP?

    @rPman
    фильтрацию по значению лучше проводить с помощью сторонних инструментов оптимизированных по максимуму
    например grep отфильтрует по содержимому строки, можно по регулярке

    а из php работать с помощь - fopen, цикл !feof и fgetcsv
    p.s. fgetcsv сильно медленней простого чтения по строкам fgets, но он умеет читать строки с экранированными ковычками '"', так что если таковых нет то работай с текстом напрямую
    Ответ написан
  • Как избавиться от одновременных запросов в PHP?

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

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

    @rPman
    если я верно понял вопрос по комментариям, это javascript injecting, сделать это можно только на стороне клиента (плагином к браузеру или командой в консоли)

    Например плагин к браузеру удобный tempermonkey, позволяет запускать пользовательский javascript в зависимости от url (по маске например example.org/path/*)
    Ответ написан
    Комментировать
  • На своем сайте выложить часть другого сайта, по верх всех окон. Как сделать?

    @rPman
    скорее всего это тот сайт детектирует открытие себя в iframe и предотвращает, так как это позволяет использовать очень серьезную уязвимость clickjacking
    Ответ написан
  • Как использовать javascript для junior backend разработчика на php?

    @rPman
    it это наиболее динамичный (быстро развивающийся и меняющийся) 'рынок'

    если ты хотя бы на пару тройку лет перестанешь изучать (хотя бы просто интересоваться) чему то новому, ты выпадаешь из реальности и начинаешь отставать, 'Нужно бежать со всех ног, чтобы только оставаться на месте, а чтобы куда-то попасть, надо бежать как минимум вдвое быстрее' (c)...

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

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

    @rPman
    кто же так задание формулирует
    слова - элементы массива? игнорировать ли небуквенные символы? пустые строки? про кодировку я молчу...

    есть в php функция ctype_upper - скармливаешь ей в цикле первые символ каждого элемента и если true то выводишь его
    foreach($mas as $word) if(ctype_upper($word[0])) echo "$word ";


    есть тут любители не циклов, может array_walk использовать?
    Ответ написан
  • Можно на php сделать websocket-ы и почему все предпочитают на node.js?

    @rPman
    что значит все?
    лично мне не нравится nodejs мне оно показалось медленней php (хотя чистый helloworld сервер работает примерно в 2 раза быстрее)

    асинхронный php реализован неплохо в reactphp, там тебе и вебсокеты, и веб сервер и вообще все вкусное из мира nodejs
    Ответ написан
    Комментировать
  • Как лучше писать парсер (PHP)?

    @rPman
    Современный веб это больше про javascript а не про генерацию страниц на бакэнде (а часто и то и другое), плюс для анализа сайта бывает проще работать с dom в браузере, открыв страницу и синжектив свой код например с помощью tempermonkey или с помощью selenium

    Так что все зависит от твоего целевого сайта

    По теме, если прямо надо парсить html именно на php то я рекомендую simple_html_dom, простой удобный... но он спасовал со страницами aliexpress (этот сайт борется с парсерами, даже если брать страницу уже после javascript), можно пользоваться более низкоуровневым DOMDocument::loadHTMLFile, он не такой удобный но менее строгий
    Ответ написан
    Комментировать
  • Как печатать из PHP на сетевом принтере?

    @rPman
    php тут будет только как посредник, вызывать консольные утилиты
    если машина на windows, слать чем то типа lpr
    если машина на linux, то lp (пакет cups-client)

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

    если добудешь доку по принтеру можешь и управляющие команды использовать, они прямо в текст вставляются
    твой принтер гуглится в связке с linux, т.е. драйвера в опенсорсе есть так что информацию найти можно будет
    Ответ написан
    Комментировать
  • База данных MySql, как сделать переменную, с индивидуальным значением для всех аккаунтов?

    @rPman
    Если по каким то причинам таблицу для данных создавать не желаете
    то можно использовать вьюху или хранимую процедуру, в которой прописываете буквально все значения от пользователя (или любых других условий)
    SELECT CASE
      WHEN USER() =='one@localhost' THEN 1
    ...
      ELSE 0
    END

    т.е. местом хранения тут будет код хранимой процедуры или вьюхи а для ее обновления потребуется вызов ddl
    Ответ написан
    Комментировать
  • Как объединить N-ое количество mp3 в один?

    @rPman
    ffmpeg умеет работать со всем видом медиа файлов, так же умеет работать с ftp/http протоколами так что достаточно разобрать json, сформировать команду вызхова ffmpeg утилиты и получить результат

    вот дока с примерами
    Ответ написан
    2 комментария
  • Почему значение даты на php записывается задом на перёд, какие исторический предпосылки обусловили этот феномен?

    @rPman
    Потому что это стандарт ISO 8601 (формат в date символом 'c'), основной принцип слева направо от наиболее значимой (длительной) части к более короткой
    Ответ написан
    Комментировать
  • Как спарсить закрытую страницу на PHP?

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

    подробности смотри во вкладке network правая кнопка на запросе - копировать curl bash, там будет очень удобно и понятно все разложено по полочкам с примером
    Ответ написан
    Комментировать
  • Некорректный curl php запрос (xhr)?

    @rPman
    Так тут тебе не смогут помочь, но

    Открываешь страницу в браузере, открываешь по F12 консоль разработчика, открываешь вкладку Network, обновляешь, делаешь все необходимые действия как пользователь для отправки запроса... получаешь подробный лог всех сообщений, отправленных серверу.

    Правая кнопка на записи, копировать, как curl bash - получишь строку в буфере, которая подробно расписывает какие заголовки и каким должен быть запрос, повторяешь его в php (я в одном месте не смог, была какая то особенность различие в php_curl, так я тупо запускал утилиту curl которая работала)

    Вполне возможно сервис ожидает что нужно несколько запросов последовательно (бывают такие программисты не знающие что запросы в REST должны быть с независимыми состояниями, ну это хороший тон)

    p.s. одно время старался, симулировал вызовы, но позже понял что гораздо проще и дешевле для разработки (но дороже по ресурсам cpu и ram) симулировать поведение на самом сайте, особенно если код нужно поддерживать несколько лет а сайт и запросы меняются постоянно), делать это можно как инструментами типа selenium так инжектом javascript кода прямо на страницу сайта с помощью чего то типа greasemonkey
    Ответ написан
    Комментировать
  • Как отобразить индикатор загрузки PWA-приложения?

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

    Собираешь статистику по устройствам, подсетям, трафику... все видно будет в логах сервера.

    Затем начинаешь искать зависимости, например время загрузки по тому с какой скоростью и сколько компонент было загружено в первые 2-3 секунды, чем больше уу тебя будет экспериментальных данных, тем точнее будет предсказание.
    Ответ написан