猿问

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

我想将所有开头的字符串更改{" and ending with "}为变量,例如:


Hello {username}, -> to Hello $array['username']

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

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


我想要的是:


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


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


米脂
浏览 200回答 3
3回答

牛魔王的故事

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

BIG阳

我觉得你应该试试这个...$content = $array['content'];$mainContent = str_replace('{username}', $array['username'], $content);$mainContent = str_replace('{company}', $array['company'], $mainContent);echo $mainContent;

凤凰求蛊

据我了解,该$array变量包含占位符键/值对以及内容。您可以尝试使用以下代码将所有占位符键替换为其相应的值:foreach ($array as $key => $value) {    if ($key != "content") {        $array["content"] = str_replace("{" . $key . "}", $value, $array["content"]);    }}/** Print contents */echo $array["content"];
随时随地看视频慕课网APP
我要回答