#php #html #apache #datetime #raspberry-pi
#php #HTML #apache #дата и время #raspberry-pi
Вопрос:
У меня настроен сервер, который при посещении HTTP-ссылки включает и выключает свет в моем доме. Я хочу создать веб-сайт, который позволит вам планировать, когда это произойдет. Я запускаю этот веб-сайт на Raspberry Pi с Apache. Мой вопрос в том, как я могу запрограммировать Raspberry pi, чтобы он получал информацию о том, в какое время посещать HTTP-ссылку и включать свет с веб-сайта. Я не знаю, делается ли это на веб-сайте через PHP или на сервере через python или что-то еще. Любая помощь будет с благодарностью. Пока это код.
<!DOCTYPE html>
<html>
<head> </head>
<body style="text-align:center;">
<?php
if(isset($_POST['button2'])) {
$command = escapeshellcmd('wget http://192.168.1.128:49949/Test1');
$output = shell_exec($command);
echo $output;
}
?>
<form method="post">
<input type="submit" name="button2"
value="Toggle"/>
</form>
</head>
</html>
Комментарии:
1. Вы хотите запустить его один раз или запланировать?
2. Кроме того, как пользователь указывает время для запуска события?
3. Я хочу выбрать это время на веб-сайте, скажем, пользователь вводит 12 часов утра ежедневно, а сервер отправляет http-запрос в 12 часов утра каждый день
4. Эта проблема слишком сложна, чтобы быть отдельным вопросом в SO. В PHP нет длительного процесса выполнения запланированного задания. Вам нужно объединить cron с некоторой библиотекой планировщика , чтобы регулярно запускать что-либо.
5. И перед этим вам нужен какой-то способ сохранить отправленное задание. Я считаю, что лучше всего использовать базу данных для постоянного хранения (например, SQLite через PDO , MariaDB / MySQL через PDO . Или вам придется реализовать свой собственный формат хранения с помощью fwrite и fread .
Ответ №1:
Это слишком сложно для одного вопроса SO. Я бы разбил на 3 части, чтобы ответить:
Как получать и сохранять расписание пользователя?
Сначала вам понадобится HTML-форма, в которой пользователь может указать время для запуска команды. Сложная часть заключается в том, чтобы как-то сохранить запланированное задание. В PHP нет длительного процесса планирования заданий. Вам нужно немного на постоянное хранилище.
Например,
- SQLite через PDO
- MariaDB / MySQL через PDO.
- Использование CSV через fputcsv и fgetcsv
- Реализуйте свой собственный формат хранения с помощью fwrite и fread.
Как запустить запланированное задание?
Как указывалось ранее, в PHP нет длительного процесса выполнения запланированного задания. В системе Linux есть cron для регулярного запуска. Вы можете запланировать его для регулярного запуска PHP-скрипта. Затем в PHP-скрипте вы можете реализовать логику для фактического запуска сохраненного задания расписания.
Вы можете использовать некоторую библиотеку планировщика, чтобы помочь вам в этом.