/** * Парсит шаблон, заменяет все управляющие конструкции (переборы, перестановки и т.д) и получает массив типа: * array( * 'template' => 'Генератор может генерировать %%0%%', * 'replacement_array' => array( * '%%0%%' => TextGenerator_OrPart * ) * ) * * @param string $template - шаблон * * @return array */ protected function parseTemplate($template) { $replacementArray = array(); $template = preg_replace_callback('#(?:\\[|\\{)((?:(?:[^\\[\\{\\]\\}]+)|(?R))*)(?:\\]|\\})#', function ($match) use(&$replacementArray) { $key = '%0000' . count($replacementArray) . '%'; $replacementArray[$key] = TextGenerator::factory($match[0], $this->getOptions()); return $key; }, $template); return array('template' => $template, 'replacement_array' => $replacementArray); }
public function initialize() { $lang = isset($_REQUEST['lang']) ? $_REQUEST['lang'] : 'eng'; if (!file_exists($lang)) { $lang = 'eng'; } self::$lang = $lang; self::$words = explode("\n", file_get_contents($lang . '/words.txt')); self::$symbols_pronouns = explode("\n", file_get_contents($lang . '/pronouns.txt')); self::$question_words = explode("\n", file_get_contents($lang . '/question_words.txt')); self::$popular_verbs = explode("\n", file_get_contents($lang . '/popular_verbs.txt')); self::$male_firstnames = explode("\n", file_get_contents($lang . '/male_firstnames.txt')); self::$female_firstnames = explode("\n", file_get_contents($lang . '/female_firstnames.txt')); self::$surnames = explode("\n", file_get_contents($lang . '/surnames.txt')); }