preg_replace with file_get_contents



我在这里看了几个问题,并在谷歌上搜索了一下,但我似乎找不到正确的方法来做到这一点。

我正在使用这个函数

function replace_c($content){
    global $db;
    $replacements = $db->query("SELECT * FROM `replacements`");
    while($replace = $replacements->fetch_assoc()){
        preg_replace("/".$replace['triggers']."/i",$replace['php'], $content);
    }
    return $content;
}

这是我对函数的调用

$contents = replace_c(file_get_contents("templates/" . $settings['theme'] . "/header.html"));

它不会给出错误,它只是没有像它应该的那样替换文本,所以我不确定该功能是否真的有效。我确实尝试了preg_replace_callback但我认为我并不完全了解它是如何工作的,并且只产生了错误,我是否必须走回调路线,或者我只是在当前函数中缺少某些内容?

Kira,

preg_Replace函数返回替换的字符串。您发布到其中的$content主题不会作为参考进行更新。因此,请尝试将代码更改为;

$content = preg_replace("/".$replace['triggers']."/i",$replace['php'], $content);

您永远不会将 preg_replace 的返回值分配给$content ....你需要的是这个:

$content = preg_replace("/".$replace['triggers']."/i",$replace['php'], $content);

您需要将替换的内容存储回变量。

$content = preg_replace(...);

另外,您确定str_replace()还不够吗?

相关内容

  • 没有找到相关文章

最新更新