САМОУЧИТЕЛЬ PHP 4



         

Главный модуль шаблонизатора - часть 4


  if($name[0]!='/') {

    // Перебираем все каталоги включения

    foreach($BLOCK_INC as $v) {

      $fname=Url2Path("$v/$name"); // Определяем имя файла

      if(file_exists($fname)) { $name="$v/$name"; break; }

    }

    // Если не нашли, $fname остается равной false

  } else {

    // Абсолютный URL — перевести его в имя файла

    $fname=Url2Path($name);

  }

  // Обрабатываем файл, имя которого вычислено по URL.

  // Сначала проверяем, существует ли такой файл.

  if($fname===false || !file_exists($fname))

    die("Couldn't open \"$name\"!");

  // Это каталог — значит, используем .htaccess

  $Single=false;

  if(@is_dir($fname)) {

    $name.="/".Htaccess_Name;

    $fname.="/".Htaccess_Name;

    $Single=1;

  }

  // Если файла до сих пор не существует (это может случиться, когда

  // мы предписали использовать .htaccess, а его в каталоге нет),

  // "мирно" выходим. Ничего страшного, если в каталоге нет .htaccess'а.

  if(!file_exists($fname)) return;

  // Запускаем файл. Для этого сначала запоминаем текущее состояние

  // и каталог, затем загружаем блоки файла (просто выполняем файл),

  // а в конце восстанавливаем состояние.

  $PrevSingle=$bSingleLine; $bSingleLine=@$Single;

  $SaveDir=getcwd(); chdir(dirname($fname));

  $SaveCBU=$CURBLOCK_URL; $CURBLOCK_URL=$name;

    // Возможно, в файле присутствуют начальные пробелы или другие

    // нежелательные символы (например, в .htaccess это может

    // быть знак комментария). Все они включатся в блок с

    // именем _PreBlockText (его вряд ли целесообразно использовать).

    Block("_PreBlockText");

    // Делаем доступными все глобальные переменные.

    foreach($GLOBALS as $k=>$v) if(!@Isset($$k)) global $$k;

    // Запускаем файл.

    include $fname;

    // Сигнализируем, что блоки закончились (достигнут конец файла).

    // При этом чаще всего будет осуществлена запись данных последнего




Содержание  Назад  Вперед