duanbeng6709 2011-02-28 09:57
浏览 30
已采纳

php str_replace数组引号

I want to use php str_replace on an array of some words, but I met a problem when str_replace uses quotation marks. dell’ex still returns 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;
?>
  • 写回答

2条回答 默认 最新

  • douruobokui58233 2011-02-28 10:00
    关注

    The ’ is nowhere to be seen in your replacement array, only ' is in it ( ’ vs ' not the same character). And you don't have to escape the double quotes ( " ) if you're putting it in single quotes.

    try :

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

    if you want to keep only alphanumeric characters, maybe something regexp based is a better solution :

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

    This code will replace anything that isn't a capital letter, a letter or a number.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?