我正在寻找一种使用方法命名参数 for sprintf
or printf
.
Example:
sprintf(
'Last time logged in was %hours hours,
%minutes minutes, %seconds seconds ago'
,$hours,$minutes, $seconds
);
or via vsprintf
和一个关联数组。
我在这里找到了一些编码示例
function sprintfn ($format, array $args = array())
http://php.net/manual/de/function.sprintf.php http://php.net/manual/de/function.sprintf.php
and here
function vnsprintf( $format, array $data)
http://php.net/manual/de/function.vsprintf.php http://php.net/manual/de/function.vsprintf.php
人们编写自己的解决方案。
但我的问题是,是否有一个标准的 PHP 解决方案可以实现此目的,或者是否有其他方法(也许使用 PEAR 提供的简单 PHP 模板),我可以通过坚持使用标准 PHP 来实现此目的?
谢谢你的帮助。
聚会迟到了,但你可以简单地使用strtr https://www.php.net/manual/en/function.strtr.php“翻译字符或替换子字符串”
<?php
$hours = 2;
$minutes = 24;
$seconds = 35;
// Option 1: Replacing %variable
echo strtr(
'Last time logged in was %hours hours, %minutes minutes, %seconds seconds ago',
[
'%hours' => $hours,
'%minutes' => $minutes,
'%seconds' => $seconds
]
);
// Option 2: Alternative replacing {variable}
echo strtr(
'Last time logged in was {hours} hours, {minutes} minutes, {seconds} seconds ago',
[
'{hours}' => $hours,
'{minutes}' => $minutes,
'{seconds}' => $seconds
]
);
// Option 3: Using an array with variables:
$data = [
'{hours}' => 2,
'{minutes}' => 24,
'{seconds}' => 35,
];
echo strtr('Last time logged in was {hours} hours, {minutes} minutes, {seconds} seconds ago', $data);
// More options: Of course you can replace any string....
输出以下内容:
上次登录时间是 2 小时 24 分 35 秒前
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)