PHP 替换字符串中的特殊字符


PHP replace special characters from a string

>我有干净的函数,用于从字符串中删除特殊的caracter,但该函数也从字符串中删除土耳其caracter(ı,ğ,ş,ç,ö)

function clean($string) {
   $string = str_replace(' ', ' ', $string); 
   $string = preg_replace('/[^A-Za-z0-9'-]/', ' ', $string); 
   return preg_replace('/-+/', '-', $string); 
}

我该如何解决?

添加要保留的字符 preg,如果需要,还要添加大写ç 我编辑了你的代码:

function clean($string) {
    $string = str_replace(' ', ' ', $string);
    $string = preg_replace('/[^A-Za-z0-9'-ığşçöüÖÇŞİıĞ]/', ' ', $string);
    return preg_replace('/-+/', '-', $string);
}

测试:

$str='Merhaba=Türkiye 12345 çok çalış another one ! *, !@_';
var_dump(clean($str));
//Output: string(57) "Merhaba Türkiye 12345 çok çalış another one   "
您可以使用

iconv替换特殊字符,如à->a,è->e

<?php
    $string = "ʿABBĀSĀBĀD";
    echo iconv('UTF-8', 'ISO-8859-1//TRANSLIT', $string);
    // output: [nothing, and you get a notice]
    echo iconv('UTF-8', 'ISO-8859-1//IGNORE', $string);
    // output: ABBSBD
    echo iconv('UTF-8', 'ISO-8859-1//TRANSLIT//IGNORE', $string);
    // output: ABBASABAD
    // Yay! That's what I wanted!
    ?>

学分:

https://gist.github.com/swas/10643194

@dmp y@Nisse 恩斯特伦

也许你可以试试:

function clean($string) {
   $string = str_replace(' ', ' ', $string); 
   $string = preg_replace('/[^A-Za-z0-9ĞİŞığşçö'-]/', ' ', $string); 
   return preg_replace('/-+/', '-', $string); 
}

要替换哪些特殊字符?也许改变清洁的范式会更容易,除了......到具体的东西。

<?php
function garbagereplace($string) {
$garbagearray = array('@','#','$','%','^','&','*');
$garbagecount = count($garbagearray);
for ($i=0; $i<$garbagecount; $i++) {
$string = str_replace($garbagearray[$i], '-', $string);
}
return $string;
}
echo garbagereplace('text@#$text%^&*text');
?>

您可以使用以下内容从重音字符中删除重音符号。

function removeAccents($subject){
  //Note:  This is not a complete list of accented characters
  $accented = array('ü','Ü','ú','È','É','Ê','Ë','é','ê','ë','è','£','Ğ','İ','Ş','ı','ğ','ş','ç','ö','Ÿ','ÿ','á','ñ','Ñ','À','Á','Â','Ã','Ä','Å');
  $clean = array('u','U','u','E','E','E','E','e','e','e','e','f','G','I','S','l','g','s','c','o','Y','y','a','n','N','A','A','A','A','A','A');
  $accentcount = count($accented);
  for ($i=0;$i<$accentcount;$i++){
    $subject = str_replace($accented[$i], $clean[$i], $subject);
  }
  return $subject;
}

例如:

removeAccents("el niño");

返回"厄尔尼诺"