Сегодня будем рассматривать такую задачку как генерация облака тегов. Мы все конечно не раз встречали это облако на других сайтах и блогах, но не все задумывались над реализацией этого облака на php. Общие моменты ясны из определения с wiki: "визуальное представление списка ярлыков (или категорий). Частота упоминаний, поисков, ссылок в интернете с определенного сайта неких слов, терминов, имен, отображается на специальной странице в виде изображения этих слов в формате гиперссылок. Размер изображения тем больше, чем выше релевантность данного слова (термина, имени)".
Релевантность в нашем случае определяется количеством вхождений одного тега в их общую массу.
Учитывая все вышесказанное, весь алгоритм построения облака тегов можно разделить на 2 этапа:
1-я задача решается довольно просто с технической точки зрения. 2-я тоже, но здесь возможны вариации.
Ниже приведу небольшой класс, который написан для генерации облака тегов.
Работать с этим классом примерно так:
Второй этап построения облака тегов (вывод облака) заключается в преобразовании показателя релевантности (количество вхождений) в размер шрифта результирующей надписи.
В классе это реализовано следующим образом: в настройках задается минимальный размер шрифта, который соответствует минимальному уровню релевантности (одно вхождение). Все теги с большей релевантностью имеют размер на столько пикселей больше, на сколько больше они имеют вхождений. Шаг изменения можно задавать полем font_size_step, а минимальный размер шрифта полем font_size_min.
Работает только с латиницей по размеру шрифта, и кодировка не помогает (это огромный минус), зависит от индивидуальных настроек сервера хостера (может и не сработать из-за устаревшей версии, что вы тут и наблюдаете).
Скачать скрипт можно тут.