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; }