用多个变量替换多个字符串

时间:2019-08-05 10:44:44

标签: php mysql

我想将所有以{" and ending with "}开头的字符串更改为一个变量, 对于示例:

Hello {username}, -> to Hello $array['username']
Your Country is {country}, -> Your Country is $array['country']

但是我使用$array['content']从数据库中使用一个变量(Mysql)获得所有字符串文本

我想要什么:

str_replace("{$whatinhere}",$array['$copytohere'],$array['content']);

str_replace("{company}",$array['company'],$array['content']);

4 个答案:

答案 0 :(得分:0)

我认为您应该尝试一下...

$content = $array['content'];

$mainContent = str_replace('{username}', $array['username'], $content);

$mainContent = str_replace('{company}', $array['company'], $mainContent);

echo $mainContent;

答案 1 :(得分:0)

据我了解,$array变量包含占位符键/值对以及内容。您可以尝试使用以下代码将所有占位符键替换为其对应的值:

foreach ($array as $key => $value) {
    if ($key != "content") {
        $array["content"] = str_replace("{" . $key . "}", $value, $array["content"]);
    }
}

/** Print contents */
echo $array["content"];

答案 2 :(得分:0)

使用preg_replace_callback函数

echo preg_replace_callback('~{(.+?)}~', 
        function($x) use ($array) { return isset($array[$x[1]]) ? $array[$x[1]] : ''; }, 
        $array['content']);

答案 3 :(得分:-1)

这是我的完整代码。

$sql = mysqli_query($db, "SELECT * FROM templates WHERE id = '$id' LIMIT 1");
$array = mysqli_fetch_array($sql);

echo str_replace({username}",$arraybf['username'],$array['content']);
echo str_replace({company}",$arraybf['company'],$array['content']);