За последние 24 часа нас посетили 21732 программиста и 1378 роботов. Сейчас ищут 755 программистов ...

Выполнение скрипта

Тема в разделе "PHP для новичков", создана пользователем Виталий1980, 8 янв 2022.

  1. Виталий1980

    Виталий1980 Новичок

    С нами с:
    8 янв 2022
    Сообщения:
    2
    Симпатии:
    0
    Добрый день! Только начал изучать php. Не могу понять как выполняется скрипт. Допустим надо получить данные из вне, данные приходят в произвольный момент времени. Писал программы на Си для микроконтролеров, там все понятно - главный цикл, потом while (1), программа зациклилась, прерывания. А как в php? Страница со скриптами выгрузилась и все. Как данные принимать?
    С уважением!
     
  2. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.556
    Симпатии:
    1.755
    Смотря какие данные и откуда. PHP создавался специально для веб-программирования, для чего и используется большей частью. Причём, создавался не для самостоятельного использования, а для использования совместно с веб-сервером. Упрощённо, схема такая:
    1. POST или GET запрос приходит на веб-сервер (любой)
    2. Веб-сервер работает примерно по описанному вами принципу, ожидая эти запросы
    3. Получив запрос, через всякие примочки, зависящие от веб-сервера, запускает php-скрипт, передавая данные, пришедшие с запросом (пример работы с данными: https://www.php.net/manual/ru/tutorial.forms.php)
    Именно этот простой принцип позволил PHP стать самым популярным языком в вебе: достаточно было залить файлы на веб-хостинг, и сайт уже начинал работать.

    Этого достаточно для очень многих случаев, поскольку современные компьютеры и современный PHP достаточно производительны. Однако, с развитием языка стали появляться средства, позволяющие программе на PHP самой стать веб-сервером, как это происходит с другими языками. Это ReactPHP, Swoole. Их есть смысл применять (ну если не просто для интересу), когда сайт действительно сталкивается с очень высокой нагрузкой, поскольку для сайтов с низкой/средней нагрузкой традиционный вариант вполне справляется.

    Систему, которая "данные из вне в произвольный момент времени" получает не по веб-протоколам (HTTP, Websocket и т.п.) я бы писать на PHP не стал.
    --- Добавлено ---
    Ну хотя, кстати, демона с while (1) тоже вполне можно на PHP написать, и опрашивать по ним какой-то источник данных. Мне недавно надо было в проекте написать такой, опрашивает раз в секунду определённую таблицу в БД, и, если там появились новые данные, выполняет с ними некие действия.
     
    #2 mkramer, 9 янв 2022
    Последнее редактирование: 9 янв 2022
  3. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.829
    Симпатии:
    738
    Адрес:
    Татарстан
    Идеология php - выполнить и умереть.
     
  4. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.763
    Симпатии:
    1.322
    Адрес:
    Лень
    умер, спустя 8 часов непрерывной работы
     
  5. Виталий1980

    Виталий1980 Новичок

    С нами с:
    8 янв 2022
    Сообщения:
    2
    Симпатии:
    0
    Не пойму, все равно. Есть сайт
    https://thingspeak com, где я могу создать канал и с моего устройства с помощью Wi-Fi модуля esp - 01, посылать ему данные с датчиков. Он их принимает и по ним строит графики. Я не знаю на чем построен этот сайт, меня интересует приблизительный алгоритм приёма этих данных сайтом. Для записи данных надо отправить GET запрос: https://api.thingspeak.com/update?api_key=AAZDNAH9T5YPFF1G&field1=0 (0 для примера). Можно ли в php вывести страницу и зациклить последний скрипт для приёма данных?
    Извиняюсь за тупые вопросы, пытаюсь вникнуть. Есть интерес.

    С уважением,
    Виталий!
    --- Добавлено ---
    mkramer, ответил на мой вопрос. Спасибо!
     
  6. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.795
    Симпатии:
    650
    Уже криво.

    С основами протокола HTTP ознакомьтесь. Обработка каждого запроса в значительной степени независима.
     
  7. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.829
    Симпатии:
    738
    Адрес:
    Татарстан
    Принял данные, записал в бд Визуализация по данным из бд
     
  8. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.763
    Симпатии:
    1.322
    Адрес:
    Лень
    Cron, раз в минуту запускать скрипт.php