PHP-cкрипт пейджинга больших текстовых файлов
Проблема: есть большие файлы данных, которые иногда приходится анализировать вручную - то есть отмотать на определённое место и глазами посмотреть что там.
Надо: сделать веб-интерфейс следующего вида:
- сверху панель, где указывается путь к локальному файлу и опционально строка для поиска в этом файле,
- после нажатия кнопки в центральную область окна грузится кусок файла, то есть текст от текущей позиции в файле и длиной Х (скажем, 5 Кб),
- снизу выводятся стрелки влево-вправо и количество страниц (округлённое частное от размера файла, делённого на размер "окна"). По нажатию на стрелки или номера страниц происходит переход на нужную страницу,
- при вводе текста для поиска и нажатия кнопки "Find" в интерфейсе показывается крутящее колесо, после этого загружается страница, на которой находится заданный текст. Поиск начинается не с начала файла, а от текущей страницы, чтобы можно было потом искать дальше.
Есть: консольный PHP-скрипт для поиска заданной строки в файле (через fread), а также получение текста с произвольной позиции заданной длины (fseek+substr). Скрипт писал я, так что если нужно смогу объяснить особенности архитектуры =)
Требования:
- шаблон интерфейса взять тут - http://j.mp/QyZsNI
- загрузка производится через AJAX,
- в проекте используются Zend Framework 1.11, jQuery, jQuery UI. При разработке используйте их возможности,
- стандарт кодирования: Zend,
- интерфейс не локализуется, любые интерфейсные элементы называть по-английски,
- желательно размер "окна" рассчитать яваскриптом как число символов, которые можно разместить в области отображения текущим шрифтом (кажется, есть такая функция). Если не сможете, то вывести лист-бокс или слайдер с целыми значениями килобайт в диапазоне 1-10 со значением 5 умолчанию.
P.S. Под "большими файлами" подразумеваются текстовые файлы в несколько гигабайт.