>我有干净的函数,用于从字符串中删除特殊的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");
返回"厄尔尼诺"