相关疑难解决方法(0)

带有命名参数的vsprintf或sprintf,或PHP中的简单模板解析

我正在寻找一种方法来为或使用命名参数.sprintfprintf

例:

sprintf(
  'Last time logged in was %hours hours, 
   %minutes minutes, %seconds seconds ago'
  ,$hours,$minutes, $seconds
);
Run Code Online (Sandbox Code Playgroud)

或通过vsprintf和一个关联数组.

我在这里找到了一些编码示例

function sprintfn ($format, array $args = array())
Run Code Online (Sandbox Code Playgroud)

http://php.net/manual/de/function.sprintf.php

和这里

function vnsprintf( $format, array $data)
Run Code Online (Sandbox Code Playgroud)

http://php.net/manual/de/function.vsprintf.php

人们写自己的解决方案.

但我的问题是,是否有可能有一个标准的PHP解决方案来实现这一点,还是有另一种方式,也许是由PEAR提供的简单的PHP模板,我可以通过坚持标准的PHP实现这一点?

谢谢你的帮助.

php string.format printf templates named-parameters

12
推荐指数
5
解决办法
2万
查看次数

在printf()字符串中命名PHP说明符

PHP中是否有一种方法可以像Python一样命名我的说明符?

我想用PHP:

$foo = array('name' => 24);
printf("%(name)d", $foo);
Run Code Online (Sandbox Code Playgroud)

我在谷歌或php手册中找不到任何相关内容.

php naming format-specifiers

11
推荐指数
3
解决办法
4281
查看次数

如何用实际值替换占位符?

我需要一个函数,用正确的变量替换'{}'中的每个variable_name.像这样的东西:

$data["name"] = "Johnny";
$data["age"] = "20";

$string = "Hello my name is {name} and I'm {age} years old.";

$output = replace($string, $data);
echo $output;

//outputs: Hello my name is Johnny and I'm 20 years old.
Run Code Online (Sandbox Code Playgroud)

我知道有这样的框架/引擎,但我不想为此安装一堆文件.

php

1
推荐指数
1
解决办法
376
查看次数