Простой парсер таблицы в массив из HTML

Задача: необходимо преобразовать страницу HTML, в которой данные размещены в виде стандартной таблицы обрамленной тегами <table></table>, в двумерный массив на PHP (парсер таблицы в массив).

Сначала я хотел решить задачу «в лоб», а именно искать теги в тексте, писать функционал по вычленению данных между тегами.. Но потом подумал, что «наверное всё уже придумано до нас», для подобных задач. Ну и собственно оказался прав. Задачу решил без лишних усилий в течении минут 5.

Решение: воспользуюсь PHP функцией DOMDocument для того чтобы преобразовать текст в DOM объект:

Так я получаю построенное DOM дерево. Затем получаю все «ветки» по имени tr, и перебираю их, одновременно перебирая «всех листья» (т.е. тэги td):

Данные я передал в двухмерный массив $mass, т.е. задача «парсер таблицы в массив» решена

парсер таблицы в массив через построение DOM

Ну а тут ссылка на подобную же задачу, но вместо HTML документа — файл формата XML

cf7 Telegram: ошибка 400 при отправке сообщения

Симптомы: При отправке сообщения из контактной формы, сообщение не отправляется в бота, а в логах появляется ошибка вида:

Изучив чуть плагин, нашел непосредственную функцию отправки сообщения, и чуть её дополнил:

Ошибка стала чуть вняетнее:

{«ok»:false,»error_code»:400,»description»:»Bad Request: can’t parse entities: Can’t find end of the entity starting at byte offset 289″}

Но ни сколько не понятнее… Стал рыть дальше. Отправка в wordpress осуществляется функцией:

Проверив аргументы, выяснил, что попадает внутрь именно то что нужно. Видимо портит данные, что-то глубже внутри функционала wordpress. Проверил концепцию заменив вызов этой функции своим велосипедом:

И оно заработало.. Ну так и оставил..

PHP Smarty: обработка json массива

Задача: обработать json строку при помощи шаблонизатора Smarty

Решение: необходимо преобразовать json строку в новую переменную:

YII2: получение параметров POST, GET и AGRV

Ну собственно движек при запуске затирает переменные $_POST, $_GET и $agrv, в целях безопасности, а потому получить их можно примерно так:

Набор скриптов для «умного дома» на Raspberry PI 3

Так уж получилось, что мой «умный» дом, это фактически небольшая кучка скриптов. Приведу пример основных из них, вдруг кому интересно будет…

Отправка/получение данных по радиоканалу с частотой 433Mhz:

Получение:

Отправка:

Получение температуры/влажности с датчиков dh11:

Мигаем светодиом:

Получение данных с микротика

Температура:

Уровни WIFI сигналов:

WiFi реле Sonoff DIY 3:

Текущий статус:

Переключение реле:

1 2 3 4 5 6 28