Php 缩短码

Php 缩短码,php,regex,oop,loading,delay,Php,Regex,Oop,Loading,Delay,不,看起来是主机故障 谁能把代码缩短 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++)

不,看起来是主机故障

谁能把代码缩短

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;
    }
private函数replaceFunc($subject)
{
foreach($this->func as$t)
{
preg\u match\u all('/\{.$t.\([a-zA-Z,\']+\)\}/i',$subject,$res);
对于($j=0;$j0)
{
$prep=explode(“,”,substr($match[0],1,-1));
$args=array();
对于($i=0;$i
你试过了吗?它已经满足了您的需要,而且还有更多功能。

如果您在市场上购买的模板引擎(由使用的新模板引擎)比smarty IMHO好得多。如果您不只是对简单的HTML+foreach循环感兴趣(它也可以做到这一点),Twig具有模板继承、宏和低性能开销等功能。

Jesus Christ!,等等,为什么要将函数放在数组上?不清楚HTML与PHP代码有什么关系。两者之间似乎没有任何明确的联系。顺便说一下,我去了你链接的页面,我没有注意到10秒的延迟。加载不到1秒。为什么要这样插入变量?这肯定是有史以来将PHP变量插入HTML的最糟糕的方式。希望有人能帮你解决这个问题……我只给出了一段代码,但是这个HTML是以文本的形式加载的,然后PHP查找并替换(之前分配的)值,并显示它。这里有一个提示:你的函数将只查找并替换接收参数的函数,因为你的正则表达式需要介于(括号)。是的,我已经试过了。但是我真的很喜欢自己建造东西(至少90%;D)。也许最好的解决方案是回到smarty。如果已经为您构建了一些东西,那么当您可以着手解决一个真正的问题时,为什么还要浪费时间重新发明轮子呢?对于smarty,它实际上做了您希望它做的事情。它已经做到了90%,您可以随时使用自定义插件更改10%。