如何将字符串中的变量替换为PHP中的值?
我在数据库中有这样的字符串(实际字符串包含100个单词和10个变量):
I am a {$club} fan
我像这样回声这个字符串:
$club = "Barcelona";
echo $data_base[0]['body'];
我的输出是 .我想要.我该怎么做?I am a {$club} fan
I am a Barcelona fan
我在数据库中有这样的字符串(实际字符串包含100个单词和10个变量):
I am a {$club} fan
我像这样回声这个字符串:
$club = "Barcelona";
echo $data_base[0]['body'];
我的输出是 .我想要.我该怎么做?I am a {$club} fan
I am a Barcelona fan
使用 strtr
。它将翻译字符串的一部分。
$club = "Barcelona";
echo strtr($data_base[0]['body'], array('{$club}' => $club));
对于多个值(演示):
$data_base[0]['body'] = 'I am a {$club} fan.'; // Tests
$vars = array(
'{$club}' => 'Barcelona',
'{$tag}' => 'sometext',
'{$anothertag}' => 'someothertext'
);
echo strtr($data_base[0]['body'], $vars);
程序输出:
I am a Barcelona fan.
我建议使用 sprintf() 函数。
不要存储 ,请使用 ,所以你的 echo 命令会像这样:I am a {$club} fan
I am a %s fan
$club = "Barcelona";
echo sprintf($data_base[0]['body'],$club);
输出:我是巴塞罗那球迷
这将使您可以自由地将相同的代码与任何其他变量一起使用(您甚至不必记住变量名称)。
因此,此代码对于相同的字符串也是有效的:
$food = "French fries";
echo sprintf($data_base[0]['body'], $food);
输出:我是炸薯条的粉丝
$language = "PHP";
echo sprintf($data_base[0]['body'], $language);
输出:我是 PHP 粉丝