2010-05-23 2 views
-1

Нет, похоже, что у него была ошибка.Код сокращения

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

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

Иисус Христос, подождите, почему у вас есть свои функции на массиве? – Ben

+0

Непонятно, что HTML-код должен делать с кодом PHP. Между ними нет четкой связи. Кстати, я пошел на страницу, с которой вы связались, и я не заметил задержки на 10 секунд. Для загрузки потребовалось менее 1 секунды. –

+0

Почему вы вставляете переменные таким образом? Это самый худший способ вставить переменные из PHP в HTML. Удачи, если кто-нибудь поможет вам в этом ... – animuson

ответ

1

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

+0

Да, я пробовал. Однако мне очень нравится строить вещи самостоятельно (не менее 90%; D). Возможно, лучшее решение будет возвращено smarty. – Misiur

+0

Если что-то уже построено для вас, зачем тратить свое время на повторное изобретательство колеса, когда вы можете продолжать решать настоящую проблему? – Johnsyweb

+0

В случае Smarty это фактически делает то, что вы хотите. Он уже делает это на 90%, и вы всегда можете изменить 10% с помощью пользовательских плагинов. – Tom

0

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