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

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

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

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

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

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

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

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

WordPress: Плагин для комментирования записей при помощи vk

Много лет пользовался плагином Social API. Да много лет заброшен и не поддерживается, но работало. Но тут случился переезд сайта с PHP 7.4 на PHP 8.2. И плагин отвалился., Поискал актуальные рабочие плагины — аналоги. Не нашел. Заброшены все. Пришлось закатать рукава и один из самых простых заброшенных плагинов довести до рабочего состояния. Результат выложен тут. Возможно дойдут руки и для того чтобы выложить в репозитарии WordPress.

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 строку в новую переменную:

Никогда не было и вдруг опять..

Или разгаданная загадка почему не вставляется запись в БД с первой строкой взятой из файла. Долго думал, пока наконец не догадался поглядеть этот файл в HEX редакторе. А там…барабанная дробь..символ BOM от создателей блокнота в Windows 😉

В общем теперь я понял, что при обработке файлов, лучше на всякий случай всегда убирать этот интересный символ, дабы не попасть в просак. Примерно так:

1 2 3 4 22