我想将所有以{" 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']);
答案 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']);