用数组PHP顺序替换字符
我奉命将我们的网站本地化。啊 在我们的通知系统中存在问题。 例子: 您有3条新消息 我希望本地字符串看起来像:用数组PHP顺序替换字符,php,Php,我奉命将我们的网站本地化。啊 在我们的通知系统中存在问题。 例子: 您有3条新消息 我希望本地字符串看起来像: You have % new messages 然后传递该数字并用该数字替换% 然而,如果我有一些我想要多个数字的东西,比如: You have % new messages, and % alerts 我想在一个数组中传递两个数字来替换第一个和第二个% 例如: $local->get(alert.message, array(3, 4)) alert.message响应您
You have % new messages
然后传递该数字并用该数字替换%
然而,如果我有一些我想要多个数字的东西,比如:
You have % new messages, and % alerts
我想在一个数组中传递两个数字来替换第一个和第二个%
例如:
$local->get(alert.message, array(3, 4))
alert.message响应您有%的新邮件和%的警报
最后的输出变成:
您有3条新消息和4条警报
您可以使用preg\u replace
设置替换次数的限制。使用此选项,您可以执行以下操作:
$str = "You have % new messages, and % alerts";
$array = [3, 4];
foreach ($array as $a)
$str = preg_replace("/%/", $a, $str, 1);
您可以使用
preg_replace
设置替换次数的限制。使用此选项,您可以执行以下操作:
$str = "You have % new messages, and % alerts";
$array = [3, 4];
foreach ($array as $a)
$str = preg_replace("/%/", $a, $str, 1);
不给你代码(同意火影忍者的建议),但应该能够提供帮助;-) 不给你代码(同意火影忍者的建议),但应该能够帮助你;-) 您也可以使用
strtr
:
$str = "You have :messages new messages, and :alerts alerts";
echo strtr($str, [
':messages' => 5,
':alerts' => 10,
]);
或者作为一种功能:
function strReplace($str, array $items) {
return strtr($str, $items);
}
它有点冗余(您可以直接调用strtr
,但它确实将其打包成一个函数
使用命名参数也使代码更易于阅读
值得注意的是,这对于安全设备来说是不安全的。正如您所知。您也可以使用
strtr
:
$str = "You have :messages new messages, and :alerts alerts";
echo strtr($str, [
':messages' => 5,
':alerts' => 10,
]);
或者作为一种功能:
function strReplace($str, array $items) {
return strtr($str, $items);
}
它有点冗余(您可以直接调用strtr
,但它确实将其打包成一个函数
使用命名参数也使代码更易于阅读
值得注意的是,这对于安全性的东西来说是不安全的。正如你所知。好的,你看了你要找的东西了吗?是的,这正是我需要的。谢谢@AndrewAlright,你看了你要找的东西了吗?是的,这正是我需要的。谢谢@Andrew