public function data($string = '', $data = array()) { // Parametre konrolleri sağlanıyor. if (!is_string($string)) { return Error::set('Error', 'stringParameter', 'string'); } $eol = eol(); // Veri dizisi boş değilse işlemleri gerçekleştir. if (!empty($data)) { $space = '\\s*'; $all = '.*'; foreach ($data as $key => $val) { // Eleman dizi değilse değiştirme işlemi gerçekleştir. if (!is_array($val)) { $key = $this->ldel . $space . $key . $space . $this->rdel; $string = preg_replace('/' . $key . '/', $val, $string); } else { $allString = ''; $newResult = ''; if (!empty($val)) { $kstart = $this->ldel . $space . $key . $space . $this->rdel; $kend = $this->ldel . $space . '\\/' . $space . $key . $space . $this->rdel; preg_match('/' . $kstart . $all . $kend . '/s', $string, $result); if (!empty($result)) { // Bloğu değiştirme ve çoğalatma // işlemi gerçekleştir. foreach ($result as $res) { // Değiştirme işlemlerini gerçekleştir. foreach ($data[$key] as $item) { $newResult = preg_replace('/' . $kstart . '/', '', $res); $newResult = preg_replace('/' . $kend . '/', '', $newResult); $allString .= $this->data($newResult, $item) . $eol; } $string = str_replace($res, $allString, $string); } } } } } } $regexChar = '(([^@]|(\'|\\").*?(\'|\\"))*)'; $htmlRegexChar = '.*?'; $pattern = array('/\\s*\\#end(\\w+)/i' => '</$1>', '/\\#\\#(\\!*\\w+)\\s*\\((' . $htmlRegexChar . ')\\)/i' => '<$1 $2>', '/\\s*\\#\\#(\\w+)/i' => '</$1>', '/\\#(\\!*\\w+)\\s*\\((' . $htmlRegexChar . ')(\\s*\\,\\s*(' . $htmlRegexChar . '))*\\)/i' => '<$1 $4>$2</$1>', '/\\#(\\!*\\w+)\\s*(\\[(' . $htmlRegexChar . ')\\])*\\s*/i' => '<$1 $3>', '/\\<(\\!*\\w+)\\s+\\>/i' => '<$1>', '/\\$\\(\'\\s*\\<(.*?)\\>\\s*\'\\)/i' => '$(\'#$1\')', '/\\$\\(\\"\\s*\\<(.*?)\\>\\s*\\"\\)/i' => '$("#$1")', '/@(if)\\s*(\\(' . $htmlRegexChar . '\\))' . $eol . '\\s*/' => '<?php $1$2: ?>', '/\\s*@(elseif)\\s*(\\(' . $htmlRegexChar . '\\))' . $eol . '\\s*/' => '<?php $1$2: ?>', '/\\s*@(endif)/' => '<?php $1 ?>', '/@(foreach)\\s*(\\(' . $htmlRegexChar . '\\))' . $eol . '\\s*/' => '<?php $1$2: ?>', '/\\s*@(endforeach)/' => '<?php $1 ?>', '/@(for)\\s*(\\(' . $htmlRegexChar . '\\))' . $eol . '\\s*/' => '<?php $1$2: ?>', '/\\s*@(endfor)/' => '<?php $1 ?>', '/@(while)\\s*(\\(' . $htmlRegexChar . '\\))' . $eol . '\\s*/' => '<?php $1$2: ?>', '/\\s*@(endswhile)/' => '<?php $1 ?>', '/@(break)/' => '<?php $1 ?>', '/@(continue)/' => '<?php $1 ?>', '/@(default)/' => '<?php $1: ?>', '/@@((\\w+|\\$|::|\\s*\\-\\>\\s*)*\\s*\\(' . $regexChar . '\\))/' => '<?php echo $1 ?>', '/@((\\w+|\\$|::|\\s*\\-\\>\\s*)*\\s*\\(' . $regexChar . '\\))/' => '<?php $1 ?>', '/@(\\$\\w+(\\$|::|\\s*\\-\\>\\s*|\\(' . $regexChar . '\\))*)/' => '<?php echo $1 ?>', '/\\{\\-\\-\\s*(' . $htmlRegexChar . ')\\s*\\-\\-\\}/' => '<!--$1-->', '/\\{\\{\\{\\s*(' . $htmlRegexChar . ')\\s*\\}\\}\\}/' => '<?php echo htmlentities($1) ?>', '/\\{\\{(\\s*' . $htmlRegexChar . ')\\s*\\}\\}/' => '<?php echo $1 ?>', '/\\{\\[\\s*(' . $htmlRegexChar . ')\\s*\\]\\}/' => '<?php $1 ?>'); $string = preg_replace(array_keys($pattern), array_values($pattern), $string); if (is_array($data)) { extract($data, EXTR_OVERWRITE); } ob_start(); @eval("?>{$string}"); $content = ob_get_contents(); ob_end_clean(); if ($lastError = Error::last()) { Exceptions::table('', $lastError['message'], '', $lastError['line']); } else { return $content; } }
//-------------------------------------------------------------------------------------------------- if (is_file($isFile)) { require_once $isFile; if (!class_exists($page, false)) { $page = $namespace . $page; } if (class_exists($page, false)) { if (strtolower($function) === 'index' && !is_callable([$page, $function])) { $function = 'main'; } if (is_callable([$page, $function])) { try { uselib($page)->{$function}(...$parameters); } catch (\Throwable $e) { if (PROJECT_MODE !== 'publication') { \Exceptions::table($e->getCode(), $e->getMessage(), $e->getFile(), $e->getLine(), $e->getTrace()); } } } else { if ($routeShow404 = Config::get('Services', 'route')['show404']) { redirect($routeShow404); } else { report('Error', lang('Error', 'callUserFuncArrayError', $function), 'SystemCallUserFuncArrayError'); die(Errors::message('Error', 'callUserFuncArrayError', $function)); } } } } else { if ($routeShow404 = Config::get('Services', 'route')['show404']) { redirect($routeShow404); } else {