Мини дорген работающий с мультикеем (multikey)

Понадобилось сгенерировать большое количество html страниц по шаблону на основе базы данных формата sql, используя такое понятие как мультикей (multikey).  Использование мультикея заключается в том что при создании шаблона мы вставляем несколько макросов с подключами, к примеру [KEYPART-1]  [KEYPART-2]  [KEYPART-3] и так далее, а во время генерации страниц эти макросы заменяются данными одной строки из базы данных соответственно из столбцов соответствующих номеру подключу. К примеру макрос [KEYPART-2] выведет данные из столбца 2 текущей обрабатываемой строки базы данных.

Попробовал найти готовые решения, ничего годного не обнаружилось. Есть такая функция в небезызвестном доргене pandorabox, но при тестировании нуленной версии 1.1.2.3 обнаружилось что пандора никак не хочет вставлять данные в которых присутствуют html теги, а также она не способна была переварить файл базы данных более 50 мегабайт. Пришлось искать другие решения.

Обратился к одному знакомому, и просто хорошему человеку, накидал небольшое ТЗ и через полчаса получил работающий php скрипт. Сразу проверил работу такого мини-доргена с файлом базы данных размером в 1 гигабайт и 300k строк. В итоге за две минуты получил 300k необходимых html файлов.

Выкладываю здесь сей скрипт, может кому и пригодится.
Кладем его в папку, в эту же папку закидываем файл базы  данных sql под именем keys.txt, где в качестве разделителя столбцов используется символ «;» (точка с запятой)
А также ваш html шаблон с макросами формата [KEYPART-N], где N -номер столбца начиная с единицы. Файл шаблона должен называться template.html
Еще нужно будет создать папку files куда будут складываться сгенерированные страницы.

Для выбора названия файлов, которые будут генерироваться, можно в строке 21 менять параметр $key[1] подставляя вместо единицы необходимый номер столбца, данные которого вы хотите использовать при генерации имени сохраняемого файла.

 

6,019 просмотров всего, 3 просмотров сегодня

  • Print

    Генерит действительно быстро. Но Вот ВОПРОС Как Сделать перелинковку? (Залинковать страницы между собой)

    • strannic

      очевидно дописывать скрипт )
      и конечно в большинстве случаев придется править под каждую платформу куда собираешься постить,
      если не на локалхост конечно.