多个字符串替换

时间:2014-04-30 01:07:14

标签: php string replace str-replace

我想要的只是将'1.234,56'转换为'1,234.56' ......

我读到使用数组(s)作为str_replace参数,所以我这样做了:

$value = '1.234,56';
$replacer1 = ',';
$replacer2 = '.';
echo \str_replace(array($replacer1, $replacer2), array($replacer2,$replacer1), $value);
//Prints '1,234,56' instead of '1,234.56'

输入和它的替换器是可变的,它不一定只用于数字。

有什么想法吗?感谢...

1 个答案:

答案 0 :(得分:1)

试试这个。我使用number_format()来做这个

<?php

$number = "1.234,56";

$number = str_replace(array('.',','), array('','.'), $number);

echo number_format($number, 2, '.', ',');

您也可以使用money_format()功能。请注意它不适用于Windows。

这是另一种方法。

<?php

$str = "1.234,56";

$rp1 = '.';
$rp2 = ',';

//you might want to create a function for this.
if(false===strpos($str, '@')){

$str = str_replace($rp1, '@', $str);
$str = str_replace($rp2, $rp1, $str);
$str = str_replace('@', $rp2, $str);

}

echo $str;

您还可以使用#!MYSEP!#

这样的唯一字符串