function flage_modifier_escape($flage, $arg0, $arguments, $line, $col) { $parsedArgs = flage_generate_args(array('filter' => false, 'firstword' => false), $arguments, $line, $col); $filters = $parsedArgs['filter']; if (!$filters) { //throw new FlageException("Unknown filter is required",$line,$col); $filters = 'html'; } foreach (explode(',', $filters) as $filter) { switch ($filter) { case "html": $arg0 = htmlspecialchars($arg0); break; case "capitalize": /** @noinspection SpellCheckingInspection */ $firstWord = $parsedArgs['firstword']; $items = preg_split('/(\\s+)/', $arg0, -1, PREG_SPLIT_DELIM_CAPTURE); foreach ($items as &$v) { if ($v) { $v = ucfirst($v); if ($firstWord) { break; } } } $arg0 = implode('', $items); break; default: throw new FlageException("Unknown escape filter {$filter}", $line, $col); } } return $arg0; }
/** * @param Flage $flage * @param mixed $arguments * @param int $line * @param int $col * @return null|string */ function flage_function_include($flage, $arguments, $line, $col) { $parsedArgs = flage_generate_args(array('filename', 'inline' => array('default' => false)), $arguments, $line, $col); $filename = $parsedArgs['filename']; $inline = $parsedArgs['inline']; $path = array(); foreach (explode('/', str_replace('\\', '/', $filename)) as $segment) { if ($segment == '' || $segment == '.') { continue; } if ($segment == '..') { array_pop($path); } else { array_push($path, $segment); } } $filename = implode('/', $path); $inst = clone $flage; //new Flage(); return $inst->Parse($filename); }