这可能已经有了答案,但是由于编码远非我的强项,我真的不知道要搜索什么。
基本上,我有一个字符串包含(我会称之为)'坏'字符。对于上下文,此字符串将从cURL响应返回。例如:
$bad_str = "Sunday’s";
问题:如何将这些替换为更具可读性的替代品?
如果我知道这类问题被调用了什么,或者它对应的是什么类型的编码,这将会容易得多。我读过:
我尝试创建一个交换地图并在其上运行preg_replace_callback
,即:
$encoding_swapouts_map = array(
'’' => "'",
'é' => 'é',
'–' => '-',
'£' => '£'
);
$bad_str = preg_replace_callback(
$ptn = '/'.implode('|', array_keys($encoding_swapouts_map)).'/i',
function($match) use ($encoding_swapouts_map) {
return $encoding_swapouts_map[$match[0]];
},
$str
);
这似乎与坏字符匹配,因此永远不会调用回调。有趣的是,$ptn
在打印出来时显示出一些突变:
/’|é|–|£/i
提前致谢。
答案 0 :(得分:-1)
我喜欢的答案怎么了? (它被删除了) 不过,我认为它有一个错字。
$text = "Sunday’s";
$bad = array("’","é","–","£");
$good = array("'","é","-","£");
$newtext = str_replace($bad, $good, $text);