php str_替换数组引号

问题描述 投票:0回答:2

我想在一些单词的数组上使用 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;
?>
php str-replace
2个回答
3
投票

' 在替换数组中无处可见,只有 ' 在其中(' vs ' 不是同一个字符)。如果你将它放在单引号中,你不必转义双引号(“)。

尝试:

$txt= str_replace(array(',','.','-','\'','"', '’'),'',$txt);

如果你只想保留字母数字字符,也许基于正则表达式的东西是更好的解决方案:

$txt = preg_replace('/[^A-Za-z0-9]/', '', $txt);

此代码将替换任何不是大写字母、字母或数字的内容。


3
投票

首先你应该明白

'
在视觉上是不同的,所以它们在语用上一定是不同的。

尝试:

$txt = str_replace(array('’',',','.','-','\'','\"'),'',$txt);
                          ^
  • &rsquo;
    =
© www.soinside.com 2019 - 2024. All rights reserved.