Есть форум, работающий на движке phpbb. В профилях у пользователей есть дополнительное поле «модель телевизора». Есть PHP-скрипт, написанный несколько лет назад фрилансером, который анализирует содержимое этого поля у всех пользователей и считает статистику по используемым моделям телевизоров. В настоящее время, скрипт работает некорректно, с автором нет связи.
Подобное описание задачи:
Форум http://webos-forums.ru посвящен телевизорам LG, работающим на операционной системе webOS. При регистрации от пользователей требуется указать в дополнительном текстовом поле модель своего телевизора по образцу "производитель модель". Например, LG 55LB870V. Как выглядит значение данного дополнительного поля у существующих пользователей можно посмотреть здесь http://webos-forums.ru/memberlist.php.
В маркировке моделей своих телевизоров компания LG кодирует много полезной технической информации: размер диагонали экрана, год выпуска, номер серии, наличие и вид тюнера, для какой страны выпущена модель (все подробности здесь http://webos-forums.ru/topic3195.html). Это нужно изучить, чтобы использовать в дальнейшем при разработке.
Ранее фрилансером был написан скрипт, который просматривает в базе пользователей с непустым полем «модель телевизора» и выводит в текстовом виде, путем расшифровки параметров моделей, указанных в дополнительном поле профиля, следующие статистические данные:
1. Количество пользователей телевизоров LG на форуме (с непустым полем профиля «модель телевизора» и подпадающим под формат модели LG) - xx; 2. Количество пользователей моделей 2014 года - xx; 2.1. Из них пользователей моделей с FullHd экранами - xx, с UltraHD - xx, 8K UHD - yy; 2.2. Из них пользователей телевизоров с OLED дисплеями - xx, с MiniLED дисплеями - yy, с ЖК дисплеями - zz 2.3. По размеру диагонали: 24" - xx , 32 - xx, 39" - xx, 42 - xx, 43 - xx, 47" - xx, 49" - xx, 50" - xx, 55" - xx, 60" - xx, 65" - xx.
Далее аналогично по следующим годам (2105, 2016..) до текущего года.
Как можно понять, анализируется потребуется все символы, в т.ч. 2 цифры - диагональ и 2 следующих за ними буквы - год модели/разрешение экрана/тип экрана. Данные для расшифровки хранятся в отдельном текстовом файле model.json в редактируемом виде.
Несмотря на то, что при регистрации на форуме от пользователей требуется ввести модель телевизора LG в указанном выше формате, многие игнорируют это. Наиболее частые ошибки: - слитное написание производителя и модели: «LG42LB6520»; - неуказание производителя: «42lb650vz»; - указание модели от другого производителя (например, самсунг): «UE48J5670»; - указание двух моделей телевизоров сразу: «49UB850V_42UB8220V»; - неправильное указание пробела: «LG43 LF590V»; - указание неполной модели: «lb650v».
Вроде бы скрипт учитывает это в своей работе, но статистика не получается корректной. Возможно, перед работой скрипта нужно будет как-то «нормализовать» значение поля с помощью mysql запроса.
Поскольку компания LG ежегодно добавляет новые модельные ряды телевизоров, нужно, чтобы в дальнейшем в скрипт можно было добавлять данные о них.
Данные о модели телевизора хранятся в поле pf_tv таблицы phpbb_profile_fields_data. Дамп таблицы может быть выслан по запросу выбранного исполнителя.