1 заметка с тегом

типограф

Быстро типографируем текст перед показом на странице

Перед показом текста на странице его надо обработать по правилам типографики. Это может сделать «Типограф» Студии Лебедева, «Типограф» Дениса Селезнева или свой движок.

Если текст написан и не меняется, то его не надо все время типографить. Достаточно оттипографить один раз, сохранить результат и выводить его до тех пор, пока текст снова не изменится.

Для этого использую такой механизм.

  • Создаю исходный текст и сохраняют его в файле с расширением «in».
  • В коде страницы вызываю функцию typo_file( ’имя_файла_с_текстом’ ), которая выводит на страницу оттипографированый текст. Имя файла указывается без расширения.

Функция typo_file( $filename ) делает следующее:

  1. Ищет файл $filename с расширением «in».
  2. Ищет файл с таким же именем и расширением «out».
  3. Сравнивает даты модификации файлов.
  4. Если «out» изменен позже, чем «in», возвращает содержимое «out».
  5. В противном случае типографит содержимое «in», записывает его в «out» и возвращает результат в основной поток.

Код функции typo_file на ПХП:

<?php

function typo_file( $file_name, $input_extension = '.in', $output_extension = '.out' ) {
   if ( !file_exists($file_name.$input_extension) )
      return '';

   $in_time  = filemtime($file_name.$input_extension);
   $out_time = file_exists($file_name.$output_extension) ? filemtime($file_name.$output_extension) : $in_time-1;

   if ($out_time < $in_time) {
      // типографим содержимое файла
      $in_file  = file_get_contents( $file_name.$input_extension );
      $out_file = typo( $in_file );
      // записываем данные в новый файл
      file_put_contents( $file_name.$output_extension, $out_file );
   } else
      $out_file = file_get_contents( $file_name.$output_extension );

   return $out_file;
}
?>

Функция typo типографит текст удобным вам способом.

Содержимое основной страницы выглядит так:

<?php
// …

echo typo_file( ‘page_content’ );

// …
?>

Вместо файла с результатом, можно использовать базу данных. В нее заносить оттипографированный текст и время последнего изменения. Ключ для доступа к записи — имя файла.

24 октября   ПХП   типограф