php花括号替换值

Kra*_*sic 0 php curly-braces

我以前从未在 php 中使用过花括号

但是我正在更新一个现有的网站...

在数据库中,我有信息,例如

YOUR NAME {CH_NAME} {URL_NAME}
Run Code Online (Sandbox Code Playgroud)

我想检索信息并以适当的方式显示它我想将 CH_NAME 变量影响为一个与 URL_NAME 相同的值,并最终显示完整的信息,例如:

1-正常:

$beforeStr="YOUR NAME {CH_NAME} {URL_NAME}";
$CH_NAME="John";
$URL_NAME="http://xxxx";

echo $beforeStr ; //would like to show : YOUR NAME John http://xxxx
Run Code Online (Sandbox Code Playgroud)

问候

mig*_*lio 5

只有你必须使用str_replace

$beforeStr="YOUR NAME {CH_NAME} {URL_NAME}";

$CH_NAME="John";
$URL_NAME="http://xxxx";
$OTHER = "OTHER";

$beforeStr = str_replace(
array('{CH_NAME}','{URL_NAME}','{OTHER}'),
array($CH_NAME,$URL_NAME,$OTHER),
$beforeStr);

echo $beforeStr ;
Run Code Online (Sandbox Code Playgroud)

另一种方式是:

$beforeStr = "YOUR NAME {CH_NAME} {URL_NAME} - {OTHER} ";

$variables = array(
  'CH_NAME'=>'John',
  'URL_NAME'=>'http://xxxx',
  'OTHER'=>'other'
);
//if var exist then replace
$response = preg_replace_callback('/{(.+?)}/ix',function($match)use($variables){
     return !empty($variables[$match[1]]) ? $variables[$match[1]] : $match[0];
},$beforeStr);

echo $response;
Run Code Online (Sandbox Code Playgroud)