Добрый день! Только начал изучать php. Не могу понять как выполняется скрипт. Допустим надо получить данные из вне, данные приходят в произвольный момент времени. Писал программы на Си для микроконтролеров, там все понятно - главный цикл, потом while (1), программа зациклилась, прерывания. А как в php? Страница со скриптами выгрузилась и все. Как данные принимать? С уважением!
Смотря какие данные и откуда. PHP создавался специально для веб-программирования, для чего и используется большей частью. Причём, создавался не для самостоятельного использования, а для использования совместно с веб-сервером. Упрощённо, схема такая: POST или GET запрос приходит на веб-сервер (любой) Веб-сервер работает примерно по описанному вами принципу, ожидая эти запросы Получив запрос, через всякие примочки, зависящие от веб-сервера, запускает php-скрипт, передавая данные, пришедшие с запросом (пример работы с данными: https://www.php.net/manual/ru/tutorial.forms.php) Именно этот простой принцип позволил PHP стать самым популярным языком в вебе: достаточно было залить файлы на веб-хостинг, и сайт уже начинал работать. Этого достаточно для очень многих случаев, поскольку современные компьютеры и современный PHP достаточно производительны. Однако, с развитием языка стали появляться средства, позволяющие программе на PHP самой стать веб-сервером, как это происходит с другими языками. Это ReactPHP, Swoole. Их есть смысл применять (ну если не просто для интересу), когда сайт действительно сталкивается с очень высокой нагрузкой, поскольку для сайтов с низкой/средней нагрузкой традиционный вариант вполне справляется. Систему, которая "данные из вне в произвольный момент времени" получает не по веб-протоколам (HTTP, Websocket и т.п.) я бы писать на PHP не стал. --- Добавлено --- Ну хотя, кстати, демона с while (1) тоже вполне можно на PHP написать, и опрашивать по ним какой-то источник данных. Мне недавно надо было в проекте написать такой, опрашивает раз в секунду определённую таблицу в БД, и, если там появились новые данные, выполняет с ними некие действия.
Не пойму, все равно. Есть сайт https://thingspeak com, где я могу создать канал и с моего устройства с помощью Wi-Fi модуля esp - 01, посылать ему данные с датчиков. Он их принимает и по ним строит графики. Я не знаю на чем построен этот сайт, меня интересует приблизительный алгоритм приёма этих данных сайтом. Для записи данных надо отправить GET запрос: https://api.thingspeak.com/update?api_key=AAZDNAH9T5YPFF1G&field1=0 (0 для примера). Можно ли в php вывести страницу и зациклить последний скрипт для приёма данных? Извиняюсь за тупые вопросы, пытаюсь вникнуть. Есть интерес. С уважением, Виталий! --- Добавлено --- mkramer, ответил на мой вопрос. Спасибо!
Уже криво. С основами протокола HTTP ознакомьтесь. Обработка каждого запроса в значительной степени независима.