如何用字符串替换€

时间:2015-07-09 13:26:44

标签: php replace

如何用PHP替换字符串中的€。

我有很多变量用€并且无法替换它们。

Y试试:

$var = "€ 66 ";

$change = str_replace("€","",$var);

但这并没有改变任何事情。

编辑:无法替换为str_replace。

参见代码:

foreach ($city as $citi) {
    $cinti = $citi;
    $as = str_replace('€ ', '', $cinti);

   var_dump($as);

    echo '<br>';
}

然后我明白了:

string(4) "€ 50" 
string(4) "€ 65" 
string(4) "€ 65" 
string(5) "€ 141" 
string(4) "€ 75" 
string(5) "€ 165" 

结果:

至少,我无法正确使用,所以我只得到数字并继续我的事情......

foreach ($city as $citi) {

    $ss = $citi[0];
    preg_match_all('!\d+!', $ss, $matches);

     echo $matches[0][0].','.$citi[1];

    echo '<br>';
}

2 个答案:

答案 0 :(得分:2)

如果您的源文件字符编码是UTF-8,那么€是一个多字节字符。 str_replace仅适用于ISO-8859-1 / Latin1字符串。

尝试这样的事情:

mb_internal_encoding("UTF-8");
mb_regex_encoding("UTF-8");

$city = array( "€ 50","€ 65","€ 65");

foreach ($city as $citi) {
    $as = mb_eregi_replace('€','',$citi);
    var_dump($as); 
    echo '<br>';
}

我更新了示例以更好地适合您的示例代码。

输出:

string(3) " 50" 
string(3) " 65" 
string(3) " 65" 

你可以添加一个trim()来摆脱空白。

答案 1 :(得分:0)

试试这个。

$var = "€ 66 ";
$change = str_replace("&euro;", "", htmlentities(trim($var)));

echo $change;