PHP-具有多个匹配项的preg_replace作为循环

时间:2019-07-08 19:20:19

标签: php regex string replace

假设我有一个数据库中的文本,例如:

$this->content = "Lorem Ipsum {MOD:ArchiveModule} <br> {MOD:ArchiveModule}";

我想将其转换为:ArchiveModule,然后在ArchiveModule目录中包含一个info.php文件

我的代码正在运行,但是他仅包含ArchiveModule,而不能同时包含两者?

谢谢!

    function checkModule(){
        $string = $this->content;
        $suchpattern ="/{MOD:(.*)::(.*)}/";
        $string = preg_replace_callback($suchpattern, '\Chroms\Core\FrontendTemplate::setModule', $string);
        return $string;
    }

#set the modul
public function setModule($mod){
    if (!empty($mod[1])){
        $dir = str_replace(".php","",$mod[1]);
        $namespace = "\\Chroms\\Extensions\\{$dir}\\";
        $className = $namespace.$mod[1];

        $string = call_user_func(array($className,str_replace("()","",$mod[2])));

        return $string;

    }
    return "";
}

0 个答案:

没有答案