如何将字符串中的变量替换为PHP中的值?

2022-08-30 10:42:56

我在数据库中有这样的字符串(实际字符串包含100个单词和10个变量):

I am a {$club} fan

我像这样回声这个字符串:

$club = "Barcelona";
echo $data_base[0]['body'];

我的输出是 .我想要.我该怎么做?I am a {$club} fanI am a Barcelona fan


答案 1

使用 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.

答案 2

我建议使用 sprintf() 函数。

不要存储 ,请使用 ,所以你的 echo 命令会像这样:I am a {$club} fanI 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 粉丝


推荐