缩短代码

发布于 2024-09-02 05:58:53 字数 989 浏览 5 评论 0原文

不,看起来是托管错误。

谁能把这段代码改短一点?

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

Nah, looks like it was hosting fault.

Who can make this code shorter?

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

梦里的微风 2024-09-09 05:58:53

您尝试过 Smarty 吗?它已经满足了您的需要,甚至更多。

Have you tried Smarty? It already does what you need and more.

眼睛会笑 2024-09-09 05:58:53

如果您在市场上寻找模板引擎,Twig,这是 symfony,比聪明的恕我直言要好得多。如果您感兴趣的不仅仅是简单的 HTML + foreach 循环(它也可以做到),Twig 具有模板继承、宏和低性能开销等功能。

If your in the market for a templating engine, Twig, a new templating engine used by symfony, is much better than smarty IMHO. If your interested in doing more than just simple HTML + foreach loop (it can do that too), Twig has features such as template inheritance, macros, and low performance overhead.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文