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

    @rPman
    добавьте вывод даты тут:
    php.net/manual/ru/function.set-error-handler.php

    но осторожно, этот калбек вызывается чаще чем хочется, поэтому настраивайте и проверяйте типы ошибок.
    Ответ написан
    Комментировать
  • Как работать репозиторию с API?

    @rPman
    С трудом понимаю что у вас за проблемы и с каким именно репозитарием?

    Разделите всю работу на атомарные операции, между которыми ваша база данных будет находиться в корректном состоянии, а за исполнение и контроль целостности в пределах атомарной операции пусть отвечает специально выделенная часть - например транзакционные базы данных, либо выделенный сервис, блокирующий одновременную работу с одними и теми же данными (есть блокировки на всю базу, на тип данных/таблицу и даже на отдельные объекты, это вопрос выбора инструментария)

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

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

    https://secure.php.net/manual/ru/function.fileatime.php
    Ответ написан
    Комментировать
  • Почему зависает консоль ssh при завершении демона php?

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

    когда нажимаете enter, bash просто выводит повторно приглашение ко вводу команд
    Ответ написан
    1 комментарий
  • Как реализовать статусы пользователя online/offline - PHP?

    @rPman
    Пожалуйста, поднимите у себя websocket, ресурсов это много не займет, зато возможности у вас появятся огромные, вы сможете не только точно знать момент, когда пользователь закрыл страницу или отключил интернет, но и сможете со стороны сервера эффективно передавать сигналы клиентам (чат например)
    Ответ написан
    2 комментария
  • Как сделать бесконечно выполняющийся скрипт php?

    @rPman
    php-cli
    Это отдельный, хоть и виртуальный пакет в операционных системах, имеет свой каталог с настройками расширений в /etc/, запускается приложение как и все скриптовые php имя файла плюс можно добавить первой строчкой по стандарту #!/usr/bin/php и поставить бит x на файл, тогда он будет запускаться как обычное приложение.

    cron - это не порядок, он подходит наоборот для периодических задач, которые отработали и завершили работу.

    По правилам, если вам нужен демон, который постоянно будет работать, то для этого необходимо создать для него файл службы, читать документацию по операционной системе или в /etc/init.d этот список все операционки тянут для совместимости до сих пор (там простой bash который запускает и останавливает вашу программу по команде start|stop).

    Будьте внимательны, если вы об этом не позаботитесь сами, ваш скрипт самостоятельно никто не перезапустит, если он вылетит по ошибке.
    Ответ написан
    Комментировать
  • Создание вероятности на php. Можете помочь?

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

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

    Заранее считать - алгоритм проще чем последовательная генерация - проще проверить итоговое распределение.
    Ответ написан
    Комментировать
  • Как сделать что бы файл брался из предыдущего каталога?

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

    p.s. попробуйте это get-included-files чтобы узнать все используемые файлы и debug_backtrace чтобы узнать какой в каком порядке вызван (не подключен! момент подключения можно получить только добавляя специальные вызовы в каждый важный файл)
    Ответ написан
    Комментировать
  • Как отсылать PONG?

    @rPman
    Вам точно нужно работать с websocket на таком низком уровне и реализовывать его самому?
    Попробуйте https://github.com/ratchetphp/Pawl и вообще пользуйтесь react и асинхронный код - это действительно круто.
    Ответ написан
    4 комментария
  • Как в PHP цикле выделить первые элемент?

    @rPman
    завести переменную $isFirst=true; а в цикле в конце установить ее значение на false
    Ответ написан
    Комментировать
  • Как сделать CRUD приложение средствами php для управления несколькими таблицами?

    @rPman
    Если вам не подходят готовые решения, а хотите сделать свой велосипед, попробуйте посмотреть в сторону метапрограммирования.

    Когда вместо того, чтобы описывать в коде структуру вашего проекта, которая с помощью фреймворка во время выполнения разворачивается в необходимые sql-запросы и html/js интерфейс пользователя (делая это каждый раз плюс очень много лишнего). Вы делаете почти то же самое, но пишите генератор всего кода и sql запросов по вашему описанию. Когда то очень давно я делал такую систему, когда по описанной модели данных (очень близкой к ЕР) с небольшими добавлениями по описанию графического интерфейса (типы данных и способы/ограничения по их редактированию), генератор компилировал в десятки/сотни php файлов, без каких либо требований к фреймворку, и достаточно эффективного кода, но позволял создавать очень быстро большое количество сложных интерфейсов по работе сданными (в основном это был поиск, просмотр и редактирование).

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

    И еще, не про вашу задачу а вообще.
    Задумайтесь о React PHP, это целая парадигма в разработке асинхронных приложений, когда cli php приложение само является веб-сервером (в т.ч. и websocket), позволяет делать очень высокопроизводительные приложения.
    Ответ написан
    Комментировать
  • Как парсить сайты если сертификат битый?

    @rPman
    curl -k https://... что выдает?

    если выдает собственно контекст сайта - может грузить страницы с помощью функций curl_.., выставив опцию CURLOPT_SSL_VERIFYPEER = false

    file_get_conents будет посложнее заставить работать со сломанным сертификатом, у меня даже с не валидным не получилось (но там проблема уязвимости, новые версии php/openssl работать с ним отказывались), так же можно отключить проверку сертификата при использование socket_open...
    Ответ написан
  • Как разлогинить всех пользователей на сайте?

    @rPman
    На сервере у вас уже есть (должны) быть инструменты, для определения авторизации пользователя (не доверять же одним кукам), например сохраненный идентификатор сессии у пользователя в базе, вот эти данные и очищайте, одним запросом к базе на сервере.
    Ответ написан
    Комментировать
  • Возможно ли осуществить с сайта #2 вход на сайт #1 на простой форме входа?

    @rPman
    сайт #2, на котором проходит авторизация должен предоставлять механизмы (специальные запросы доступные только другим сайтам #1), сообщающие что вот такой то пользователь (идентификатор, создаваемый на старте авторизации еще в #1) ввел верные данные (и его роль админ/пользователь/гость...).
    Ответ написан
    Комментировать
  • Как сделать обработку формы без отправки?

    @rPman
    на onclick/onchange поля ввода (в зависимости, когда именно нужно делать запрос) ставите обработчик javascript которые используя ajax с помощью какой-либо библиотеки, тот же jquery (или более низкий уровень XMLHttpRequest без библиотек) а на сервере на этот запрос вы уже делаете sql запрос и возвращаете результат.

    Не рекомендую делать запрос на каждое событие, ставьте ограничение - не чаще чем раз в X секунд, например вместо прямого запроса делать его внутри setInterval, отменяя предыдущий.
    И помните что запросы ajax асинхронные, т.е. некоторые ответы могут прийти позже других (такие вы по логике не должны выводить, так как уже получили более новый)
    Ответ написан
  • Могут ли взломать сайт через форму отправки сообщений?

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

    p.s. проверьте, что произойдет, если данные формы отправить в виде GET запроса, а не POST.
    Ответ написан
  • Как вставить видео с автопроигрывание на фоне на сайт, но не через youtube?

    @rPman
    Положите свое видео в виде файла на свой сервер и заверните его в тег video

    Форматы и кодеки видеофайла смотреть тут:
    https://ru.wikipedia.org/wiki/HTML5_video
    https://developer.mozilla.org/ru/docs/Web/HTML/Под...

    p.s. легальность использования того или иного кодека, то еще развлечение, но в вашем случае скорее всего теоретическое
    Ответ написан
    Комментировать
  • Почему PHP Simple HTML DOM Parser прерывает вывод сразу после слова на русском языке?

    @rPman
    ни разу не было проблем с этой библиотекой и русским языком (utf8)
    Ответ написан
  • Замена файла без изменения URL, как реализовать?

    @rPman
    Использовать особенности почти всех файловых систем - символьные ссылки. Пусть file.jpeg будет ссылка на нужный файл, пересоздавайте его по мере надобности.
    Ответ написан
    Комментировать
  • Не запутает ли такой полиморфизм разработчика?

    @rPman
    Я не буду говорить про ООП, читаемость кода или его модифицируемость в будущем.

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

    К сожалению это за последние десять лет стало нормой на столько что можно увидеть абсолютно везде... а потом удивляются, а почему все работает так медленно, и памяти кушает много.

    p.s. по теме, если параметр, который подставляют в вызов method() будет браться из-вне, например значение одного из параметров в GET, то я бы порекомендовал пропустить эти параметры через специальный метод-фильтр, конвертирующий строки во внутреннее представление (числовые дефайны или ссылки на методы), он же проверяет их валидность... вот это удобство для программиста, когда выделяется отдельная задача в отдельный метод/класс... ООП тут совершенно не требуется, так как нечего наследовать, хотя может быть использовано просто как синтаксический способ объединить код и данные в одном месте.
    Ответ написан
    3 комментария