-1

我想替换 xml 文档中的一些引号并为此使用 php 函数。它适用于所有字符,除了这个:

实体

我尝试了这些 un​​icode 字符但没有成功:

'“', '”', '„', '″'

在我的选择中,第一个是:„或者„但是:

echo str_replace('„', '####', $desc );

不起作用。结果列表:?Life?.

这是我的测试功能:

echo str_replace( '„', '####', $desc );
4

4 回答 4

2

您的问题是因为您尝试替换的符号是 UTF-8 符号并且占用超过 1 个字节,str_replace 不能与此类符号一起使用,请使用 MB_#### 字符串 - 它适用于多字节字符串,如下例所示:

<?php

// NOTE - file is saved as UTF-8 file

mb_internal_encoding('utf-8');
mb_regex_encoding('utf-8');

$s = 'a„b';

echo $s."<br>";

$s = mb_eregi_replace('„', '"', $s);

echo $s."<br>";
于 2013-10-10T22:28:25.220 回答
0

您可以在 $pattern_arr 中以逗号分隔复制粘贴任意数量的特殊字符,并在 $replacement_arr 中以逗号分隔其各自的替换。

<?php
$a = ',,Life"';

$pattern_arr = array('/,/','/"/');
$replacement_arr = array('');

$i=0;
while($i<count($pattern_arr)) {
        $a= preg_replace($pattern_arr[$i], $replacement_arr[0] , $a);
        $i++;
}

print_r($a);
?>
于 2013-10-11T12:43:15.507 回答
0

我对“”引号的解决方案怎么样?
它对我有用,而且很短:

<meta http-equiv="content-type" content="text/html; charset=utf-8">
<?php
$test1='„Life"';
$test2='„Life‟';
echo str_replace('„','+',$test1.'<br />');
echo str_replace('‟','+',$test2);
?>

结果:

+Life"
„Life+
于 2013-10-11T23:19:50.980 回答
0
于 2013-10-05T22:27:44.010 回答