我想在一些单词的数组上使用php str_replace,但是当str_replace使用引号时遇到了问题。 dell’ex
仍然会返回dell’ex
...
<?php
header('Content-type:text/html; charset=utf-8');
$txt = "Violenza sessuale e sgombero dell’ex ambasciata somala: la punizione collettiva non è una soluzione";
$txt= str_replace(array(',','.','-','\'','\"'),'',$txt);
$txt = str_replace(array('á','à','ó','ò','é','è','í','ì','ú','ù','È','É'),array('a','a','o','o','e','e','i','i','u','u','e','e'),$txt);
echo $txt;
?>
答案 0 :(得分:3)
'替换数组中无处可见,只有'在其中('vs'不是同一个字符)。如果你把它放在单引号中,你就不必转义双引号(“)。
尝试:
$txt= str_replace(array(',','.','-','\'','"', '’'),'',$txt);
如果你只想保留字母数字字符,也许基于regexp的东西是更好的解决方案:
$txt = preg_replace('/[^A-Za-z0-9]/', '', $txt);
此代码将替换任何非大写字母,字母或数字的内容。
答案 1 :(得分:3)
首先,您应该了解'
和’
在视觉上有所不同,因此它们必须务实地不同。
尝试:
$txt = str_replace(array('’',',','.','-','\'','\"'),'',$txt);
^
’
= ’