在money_format`中用✪(“&\#x272A;”)替换*的最简单方法是什么?

时间:2019-01-23 22:27:11

标签: php string escaping html-entities money-format

setlocale(LC_MONETARY, 'en_US');
$str = money_format('%=*#4.4n',163.17852837291);

哪个返回$**163.1785的{​​{1}}。

我想打印$str

感谢一百万个家伙!

2 个答案:

答案 0 :(得分:2)

money_format只能接受一个字节的填充字符,因此您不能直接实现所需的内容。但是,您可以在money_format之后使用str_replace*更改为

setlocale(LC_MONETARY, 'en_US');
$str = money_format('%=*#4.4n',163.17852837291);
$str = str_replace('*', '✪', $str);
echo $str;

输出:

✪163.1785

请注意,只有一个,因为您指定的宽度为4,并且数字中有3位数字。

Demo on 3v4l.org

答案 1 :(得分:1)

您可以通过以下方式定义特定功能:

function m_money_format($f, $s)
{
    return str_replace("*", "&\#x272a;", money_format($f,$s));
}

setlocale(LC_MONETARY, 'en_US');
$str = m_money_format($f, $s);

因此,您可以在代码的每个部分中随时调用该函数