files[$file_id] = $file_contents; // Работа с файлом завершена, закрыть его. fclose($fh); } // Функция: register_variables() // Назначение: сохранение переменных, переданных // в параметре $variable_name, в массиве с ключом $file_id. function register_variables($file_id, $variable_name) { // Попытаться создать массив, // содержащий переданные имена переменных $input_variables = explode(",", $variable_name); // Перебрать имена переменных while (list(,$value) = each($input_variables)) : // Присвоить значение очередному элементу массива $this->variables $this->variables[$file_id][] = $value; endwhile; } // Функция: file_parser() // Назначение: замена всех зарегистрированных переменных // в файле с идентификатором $file_id function file_parser($file_id) { // Сколько переменных зарегистрировано для данного файла? $varcount = count($this->variables[$file_id]); // Сколько файлов зарегистрировано? $keys = array_keys($this->files); // Если файл $file_id существует в массиве $this->files // и с ним связаны зарегистрированные переменные if ( (in_array($file_id, $keys)) && ($varcount > 0) ) : // Сбросить $x $x = 0; // Пока остаются переменные для обработки... while ($x < sizeof($this->variables[$file_id])) : // Получить имя очередной переменной $string = $this->variables[$file_id][$x]; // Получить значение переменной. Обратите внимание: // для получения значения используется конструкция $$. // Полученное значение подставляется в файл вместо // указанного имени переменной. GLOBAL $$string; // Построить точный текст замены вместе с ограничителями $needle = $this->opening_escape.$string.$this->closing_escape; // Выполнить замену. $this->files[$file_id] = str_replace( $needle, $$string, $this->files[$file_id]); // Увеличить $x $x++; endwhile; endif; } // Функция: print_file() // Назначение: вывод содержимого файла, // определяемого параметром $file_Id function print_file($file_id) { // Вывести содержимое файла с идентификатором $file_id print $this->files[$file_id]; } }