1

いくつかの単語の配列で 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;
?>
4

2 に答える 2

3
于 2011-02-28T10:01:53.467 に答える
3

' は置換配列のどこにも見られず、' だけが含まれています (' vs ' は同じ文字ではありません)。また、単一引用符で囲む場合は、二重引用符 ( " ) をエスケープする必要はありません。

試す :

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

英数字のみを保持したい場合は、おそらく正規表現ベースの何かがより良い解決策です:

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

このコードは、大文字、文字、または数字以外のものを置き換えます。

于 2011-02-28T10:00:44.090 に答える