Php ile bir yazı içerisinde bulunan özel karakterleri değiştirmek için bir fonksiyon yazalım. Bu fonksiyon parametre olarak yazıyı (text) almakta ve geriye düzeltilmiş yazıyı döndürmektedir.
/*
* @param string $text
*
* @return string $text
*/
public function ozelKarakterleriDuzelt($text) {
/*
* Özel karakterlerin karşılıkları
*
* bir dizide toplanır
*/
$specialLetters = array(
'a' => array('á', 'à', 'â', 'ä', 'ã'),
'A' => array('Ã', 'Ä', 'Â', 'À', 'Á'),
'e' => array('é', 'è', 'ê', 'ë'),
'E' => array('Ë', 'É', 'È', 'Ê'),
'i' => array('í', 'ì', 'î', 'ï', 'ı'),
'I' => array('Î', 'Í', 'Ì', 'İ', 'Ï'),
'o' => array('ó', 'ò', 'ô', 'ö', 'õ'),
'O' => array('Õ', 'Ö', 'Ô', 'Ò', 'Ó'),
'u' => array('ú', 'ù', 'û', 'ü'),
'U' => array('Ú', 'Û', 'Ù', 'Ü'),
'c' => array('ç'),
'C' => array('Ç'),
's' => array('ş'),
'S' => array('Ş'),
'n' => array('ñ'),
'N' => array('Ñ'),
'y' => array('ÿ'),
'Y' => array('Ÿ'),
'G' => array('Ğ'),
'g' => array('ğ')
);
/*
* İç içe döngü ilse yazı içindeki özel karakterler
*
* karşılıkları ile değiştirilir
*/
foreach ($specialLetters as $letter => $specials) {
foreach ($specials as $s) {
$text = str_replace($s, $letter, $text);
}
}
return $text;
}