Türkiye'nin En Eski Webmaster Forumu İyinet'e Hoşgeldiniz!

Php ile küçük harfleri büyük harflere çevirme (Türkçe)

Loi

0
Onaylı Üye
Üye
Katılım
13 Kasım 2006
Mesajlar
6,192
Açılan Konu
145
Tepki puanı
44
Konum
localhost
Normalde strtoupper() fonksiyonu ile küçük harfleri büyük harflere çevirmek mümkünken, Türkçe karakterlerde sorun çıkmaktadır. Aşağıdaki fonksiyon ile bu sorunuda giderebilmektesiniz.

PHP:
function strtoupper_tr($veri) {
	$kh=array('ı','i','ş','ö','ğ','ç','ü');
	$bh=array('I','İ','Ş','Ö','Ğ','Ç','Ü');
	$veri=str_replace($kh,$bh,$veri);
	$veri = strtoupper($veri);
	return $veri;
}
 

Ping

iyinet
Onaylı Üye
Üye
Katılım
10 Temmuz 2011
Mesajlar
2,400
Açılan Konu
133
Tepki puanı
22
Konum
Türkiye
Teşekkürler, bir ara lazım olmuştu.
 

selim61

0
Onaylı Üye
Üye
Katılım
10 Mayıs 2006
Mesajlar
5,299
Açılan Konu
252
Tepki puanı
13
Konum
<?=selim61?>
Bu verdiğiniz fonksiyonla bilahare utf8 ve diğer bazı karakter setlerinde sorun yaşayabilirsiniz. Aşmak için iconv kullanarak giderebilirsiniz, sadece türkçe karakterler için değil diğer karakterler içinde önce iconv sonra strtoupper yada strtolower kullanmakta fayda var.
Ör string içinde '€' simgesi var, küçült bakalım?
PHP:
<?php
$text = "Bu bir Euro simgesidir: '€'.";

echo 'Original : ', $text, PHP_EOL;
echo 'TRANSLIT : ', iconv("UTF-8", "ISO-8859-1//TRANSLIT", $text), PHP_EOL;
echo 'IGNORE   : ', iconv("UTF-8", "ISO-8859-1//IGNORE", $text), PHP_EOL;
echo 'Plain    : ', iconv("UTF-8", "ISO-8859-1", $text), PHP_EOL;

/*
Original : Bu bir Euro simgesidir: '€'.
TRANSLIT : Bu bir Euro simgesidir: 'EUR'.
IGNORE   : Bu bir Euro simgesidir: ''.
Plain    :
Notice: iconv(): Detected an illegal character in input string in .\iconv-example.php on line 7
This is the Euro symbol '
*/
?>
 

Loi

0
Onaylı Üye
Üye
Katılım
13 Kasım 2006
Mesajlar
6,192
Açılan Konu
145
Tepki puanı
44
Konum
localhost
Hemen deneyelim.

Ekleme: Sıkıntı oluşmadı ama dikkate almakta fayda var tabi.
Teşekkürler Selim ;)
 

gemius

0
Onaylı Üye
Üye
Katılım
14 Kasım 2010
Mesajlar
263
Açılan Konu
2
Tepki puanı
1
CSS'te de böyle bir olay mevcut. uppercase ve lowercase kodlarını araştırırsanız ilgili dökümanlara ulaşabilirsiniz. Arkadaşlara da paylaşım için teşekkürler.
 

Loi

0
Onaylı Üye
Üye
Katılım
13 Kasım 2006
Mesajlar
6,192
Açılan Konu
145
Tepki puanı
44
Konum
localhost
CSS'te de böyle bir olay mevcut. uppercase ve lowercase kodlarını araştırırsanız ilgili dökümanlara ulaşabilirsiniz. Arkadaşlara da paylaşım için teşekkürler.

Evet araştırma yaparken bununlada karşılaşmıştım, hatırlattığınız için teşekkürler ancak girilen bilgiler veritabanına işleneneceğinden, bir standart oluşturmak gerekiyor. Bu sebeple CSS işimi görmemişti ancak bunu paylaşmakta da tabiki fayda var.
 
Üst