Сокращенный код - PullRequest
       15

Сокращенный код

0 голосов
/ 23 мая 2010

Нет, похоже, это была ошибка хоста.

Кто может сделать этот код короче?

private function replaceFunc($subject)
    {
        foreach($this->func as $t)
        {
            preg_match_all('/\{'.$t.'\([a-zA-Z,\']+\)\}/i', $subject, $res);
            for($j = 0; $j < sizeof($res[0]); $j++)
            {
                preg_match('/\([a-zA-Z,\']+\)/i', $res[0][$j], $match);
                if($match > 0)
                {
                    $prep = explode(", ", substr($match[0], 1, -1));
                    $args = array();
                    for($i = 0; $i < sizeof($prep); $i++)
                    {
                        $args[] = substr($prep[$i], 1, -1);
                    }
                }
                else
                {
                    $args = array();
                }
                $subject = preg_replace('/\{'.$t.preg_quote($match[0]).'\}/i', call_user_func_array($t, $args), $subject);
            }
        }
        return $subject;
    }

Ответы [ 2 ]

1 голос
/ 23 мая 2010

Вы пробовали Smarty ?Он уже делает то, что вам нужно, и даже больше.

0 голосов
/ 24 мая 2010

Если вы хотите купить шаблонизатор, Twig , новый шаблонизатор, используемый symfony , намного лучше, чем smarty IMHO. Если вы заинтересованы не только в простом цикле HTML + foreach (он тоже может это делать), в Twig есть такие функции, как наследование шаблонов, макросы и снижение производительности.

...