Navigate / search

Php ile Büyük & Küçük Harf Çevirme Türkçe Problemi

Konu: Php ile Büyük & Küçük Harf Çevirme Türkçe Problemi

Yeni fonksiyonlarımız : mb_strtolower() , mb_strtoupper()

Php ile harfleri küçük harftan büyük harfe,büyük harften küçük hafta çevirmek ya da sadece ilk harfleri büyütmek oldukça basittir. Bir kaç Php fonksiyonu ile bunları gerçekleştirebilirsiniz. Bu fonksiyonları anlattığım yazıma bakabilirsiniz.

Php’de Büyük & Küçük Harfe Çevirme

Bu fonksiyonların kullanımı sırasında Türkçe karakter problemleri yaşıyoruz. Bu konuyla ilgili bir kaç geri dönüşün ardından bu problemlere çözüm getirecek UTF-8 ile harfleri değiştirebileceğiniz fonksiyonları sizinle paylaşacağım.

Öncelikle strtolower fonskiyonundan başlayalım. Daha önceki derste anlatmış olduğum gibi bu fonkisyonumuz harfleri küçük harfe çevirmeyi sağlıyor. strtolower fonskiyonu yerine mb_strtolower fonskiyonunu kullanacağız ve karakter setimizi UTF-8 olarak belirteceğiz. Bu sayede harfleri küçültüp büyültürken türkçe karakterlerde sorun yaşamayacağız. Şimdi konuyla alakalı fonksiyonların kullanımı görelim.

1
2
3
4
5
// STRTOLOWER (harf küçültme)
strtolower($metin);
 
// STRTOUPPER (harf küçültme)
strtoupper($metin);

yerine;

1
2
3
4
5
// STRTOLOWER (harf küçültme)
mb_strtolower($metin,"utf-8"); // encoding olarak kullanımı
 
// STRTOUPPER (harf küçültme)
mb_strtoupper($metin,"utf-8"); // encoding olarak kullanımı

Fonksiyonlarını kullanarak Türkçe karakter probleminden kurtulmuş olacağız.

mb_strtolower ve mb_strtoupper fonksiyonularını kullanırken karakter setimizi UTF-8 olarak belirlediğimiz için Türkçe karakter problemi yaşamayacağız ;) Aynı şekilde karakter set sorununu substr fonksiyonu ile de yaşayabilirsiniz. Konuyla ilgili şu yazımı okuyabilirsiniz.

Php Substr Türkçe Karakter Problemi

Bunları öğrendiğimize göre kullanabileceğiniz çok profesyonel olmayan ama heryerde işinizi görebilecek bir kaç fonskiyonu sizinle paylaşacağım.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
function tr_strtolower($metin) {
    return mb_strtolower($metin, 'utf-8');
}
 
function tr_strtoupper($metin) {
    return mb_strtoupper($metin, 'utf-8');
}
 
function tr_ucfirst($metin) {
	$ilk = mb_substr($metin,0,1, 'utf-8');
	$kalan = mb_substr($metin,1,strlen($metin), 'utf-8');
        return tr_strtoupper($ilk).tr_strtolower($kalan);
}

Kendi oluşturduğumuz fonksiyonları kendi projemizde karakter set belirtmeden kullanabiliriz.

1
2
3
tr_strtolower($metin);
tr_strtoupper($metin);
tr_ucfirst($metin);

split() ile Metni Özel Bir Karakterle Diziye Bölmek

Dizilere bölmek,Diziye Bölmek,Split komutunun kullanımı…..

Bir değişken içindeki bazı metinleri sayıları birbirinden bağımsız hale getirmemiz gerekir.Birbirinden bağımsız derken her birini farklı bir değişkene atmak yada bir dizi içinde ayırmak olabilir.Şimdi bir örnek yapalım.Bir değişken içerisinde 5 6 farklı kişnin adının kaydedildiğini varsayalım.Bunlarında virgül ile ayrıldığını düşünürsek şu şekilde isimleri bir diziye aktarabiliriz.

1
2
$isimler="ali,ahmet,veli,murat,hasan";
$isimler_dizi=split("[,]",$isimler);

Bu şekilde her kişi adını bir dizi içine atmış olduk.Şimdi bunları foreach ile yazdıralım.

1
2
3
4
5
$isimler="ali,ahmet,veli,murat,hasan";
$isimler_dizi=split("[,]",$isimler);
foreach ($isimler_dizi as $isim){
      echo $isim."<br>";
}

Örneği çalıştırdıysanız her bir ismin farklı farklı tutulduğunu göreceksiniz.
Şimdi biraz daha detaylı bir örnek yapalım.Bu sefer split() fonksiyonunun farklı bir kullanımını göreceğiz.Fonksiyonu kullanırken bir ayraç kullanmıştık.O ayracı her gördüğünde metni dizilere ayırıyordu.İşte o ayraç sayısını istediğimiz şekilde arttırabiliriz.Örneğin hem virgül hem nokta hemde soru işaret olan kısımları ayır diyebiliriz.

Örneğin web sitesinde kullanıcının doldurup bize gönderdiği bir form var.bu formada tarihi gün ay yıl olarak girecektir.Kimi kullanıcı gün ay yıl ı yazarken aralara “.” kimi kullanıcı ” /” kimi kullanıcı ise ” – ” koyabilir.Explode fonksiyonunda böyle bir istisnai durumu çözmemize imkan yoktur.Yine örneğimizden yola çıkarak biz bu tarihleri 3 farklı karakter kullanılarakta yapsak sorun çıkmadan nasıl yaparız.
Komutu şu şekilde kullanmamız gerekicek: split(“[/-.]“,$tarih)

1
2
$tarih="24/02/1987";
$detayli_tarih=split("[/-.]",$tarih);

Strtr() ile Metin İçindeki Harfleri Değiştirmek

Strtr fonksiyonu ile bir değişken içerisindeki metinde istediğimiz karakterlerin yerine başka karakterler yerleştirmemizi sağlar.Değişkenimizin kullanımı şöyledir.

strtr($degisken,"değişecek_olan_karakter","yeni gelecek karakter")

Örneğin değişkenimize “php” metnini verelim ve o değişkenimiz için “h” gördüğün yere “t” yazmasını isteyelim.

1
2
$degisken="php";
echo strtr($degisken,"h","t");

Sonuç tahmin ettiğiniz gibi “ptp” olacaktır.Harf sayılarını istediğiniz kadar arttırabilirsiniz.Ama sırayı bozmayacak şekilde…

Bo komutu şimdi göstereceğim gibi çok birçok farklı yerde kullanabilecek ve faydalanacaksınız.
Örneğin gelen bir metniniz var.Bu metin içinde türkçe karakterler var ve bu türkçe karakterleri kullanmak istemiyorsunuz.İşte burda Strtr() fonksiyonu devreye giriyor.Bir metindeki türkçe karakterler nasıl düzeltilir görelim.
İlk önce türkçe karakterlerden oluşan bir metin örneği yazıyoruz ve hemen ardından strtr fonksiyonunu kullanıyoruz.Nasılmı değiştirilecek harflere tüm türkçe karakterleri yazıyor ve yeni gelecek harfler kısmınada bu harflerin karşılıklarını yazıyor.

1
2
3
$metin="türkçe karakter bazi zamanlarda sorunlar çikartir.Sorun çıkartan karakterler şunlardir.( ş,ç,ğ,ü,ö ) şimdi uygladiğimiz strtr fonksiyonu hem yazimizdaki hemde örnekteki türkçe karakterleri yok edecektir";
echo $metin."<br>";
echo strtr($metin,"öüşğç","ousgc");

Bu kodları çalıştırdığınızda cümleyi ilk önce ham halinde daha sonra türkçe karakterlerden arınmış bir halde sergiledik.

türkçe karakter bazi zamanlarda sorunlar çikartir.Sorun çikartan karakterler sunlardir.( s,ç,g,ü,ö ) simdi uygladigimiz strtr fonksiyonu hem yazimizdaki hemde örnekteki türkçe karakterleri yok edecektir
-----------------------------------------------------
turkce karakter bazi zamanlarda sorunlar cikartir.Sorun cikartan karakterler sunlardir.( s,c,g,u,o ) simdi uygladigimiz strtr fonksiyonu hem yazimizdaki hemde ornekteki turkce karakterleri yok edecektir

Php’de Büyük & Küçük Harfe Çevirme- strtoupper,strtolower,ucfirst,ucwords

Konu: Baş harfleri büyük yapmak,metni küçük harfe çevirmek,metni büyük harfe çevirmek.

Php’de gerektiği zamanlarda metinleri düzenlememiz gerekir.Bunlardan biride büyük küçük harf farklılıklarıdır.Kimi yazılarda cümlenin ilk harfinin büyük olması kimi yazılarda tüm kelimelerin baş harflerinin büyük olması kimi yazılarda da tamamen küçük yada tamamen büyük olmasını isteriz.Saydıklarım metin düzenlemeleri için 4 farklı komut yani fonksiyon kullanacağız.Bu komutlar strtolower() strtoupper() ucfirst() ucwords().
Şimdi sırasıyla bu komutlara göz atalım ve örnekler yapalım.

Küçük harfleri büyük harflere çevirmek – strtoupper($degisken) ;

1
2
$metin="php dersleri buyuk kucuk harf kavrami";
echo strtoupper($metin);

Metnimizin tümü küçük harflerden oluşuyordu.Strtoupper komutuyla bu yazıyı ekrana yazdırdık ve metnimizin tüm karakterleri büyük oldu;

PHP DERSLERI BUYUK KUCUK HARF KAVRAMI

Büyük harfleri Küçük harflere çevirmek – strtolower($degisken) ;

1
2
$metin="PHP DERSLERI BUYUK KUCUK HARF KAVRAMI";
echo strtolower($metin);

Metnimizin tümü büyük harflerden oluşuyordu.Strtolower komutuyla bu yazıyı ekrana yazdırdık ve metnimizin tüm karakterleri küçük oldu;

php dersleri buyuk kucuk harf kavrami

Cümlenin ilk harfini büyük harflere çevirmek – strtoupper($degisken) ;

1
2
$metin="php dersleri buyuk kucuk harf kavrami";
echo ucfirst($metin);

Metnimizin tümü küçük harflerden oluşuyordu.Ucfirst komutuyla bu yazıyı ekrana yazdırdık ve metnimizin sadece ilk harfi büyük oldu;

Php dersleri buyuk kucuk harf kavrami

Her kelimenin ilk harfini büyük harflere çevirmek – ucwords($degisken) ;

1
2
$metin="php dersleri buyuk kucuk harf kavrami";
echo ucwords($metin);

Metnimizin tümü küçük harflerden oluşuyordu.Ucwords komutuyla bu yazıyı ekrana yazdırdık ve metnimizdeki her kelimenin ilk harfi büyük oldu;

Php Dersleri Buyuk Kucuk Harf Kavrami

Şu ana kadar hep cümlenin düzenlenmiş halini echo() komutuyla ekrana yazdırdık.Bunu direk olarak ekrana yazdırdaman bir değişkenin içine atıp daha sonra kullanmak üzere saklayabiliriz

$duzenlenmis_metin=strtolower($metin);
$duzenlenmis_metin=strtoupper($metin);
$duzenlenmis_metin=ucfirst($metin);
$duzenlenmis_metin=ucwords($metin);

Chr () ile ASCII Kodu Karaktere Çevirmek

Bir önceki derste Ord() komutuna başlamadan önce ASCII kodlar hakkında bilgi vermiştik.Bu bilgiyi tekrar yazıyorum.

Klavyede herhangi bir harfa bastığımızda bilgisayar bunu harf olarak değil de ASCII kodunu algılamaktır.Her harfin her simgenin mutlaka bir ASCII kodu vardır.Örneğin “A” harfinin ASCII kodu 065‘tir.Klavyemizde Space tuşunun solunda bulunan ALT tuşuna basılı tutarak klavyemizi Numpad adı verdiğimiz soldaki numerik tuşlarından 065′i tuşlayıp ALT tuşundan elinizi kaldırdığınızda imlecin “A” harfini yazdığını göreceksiniz.Bu yöntem klavyede bulunmayan karakterlerin yazdırılmasındada kullanılabiliri.Örneğin ALT+168 yaptığınızda “¿” karakterini ALT+184 yaptığınızda “©” karakterinin yazıldığını göreceksiniz.
Chr() fonksiyonu ASCII kodu karaktere çevirmeye yarar.
Şimdi ASCII kodunu bildiğimiz bir karakteri Chr() Fonksiyonu ile bizim anlayabileceğimiz dile çevirelim.

1
2
3
4
5
echo chr(65)."<br>";
echo chr(83)."<br>";
echo chr(79)."<br>";
echo chr(168)."<br>";
echo chr(248)."<br>";

Chr() fonksiyonunda parantez içine yazdığımız ASCII kodu hangi karaktere ait ise o karakter ekrana çıkacaktır.

A
S
O
¨
ø

Şimdi farklı bir örnekle hem tüm ASCII kodlarını görüntüleyeceğiz hemde for döngüsüyle bir örnek yapıp kendimizi geliştireceğiz.
Döngü esnasında sayacımızı sıfırdan başlatıyoruz ve döngü 255 e kadar gidiyor.Her döngüde chr() fonksiyonuna sayacımızı yerleştiriyoruz ve 256 adet karakteri yazdırmış bulunuyoruz.Karakterleri yazarken karakterden önce “ALT +” yazdırıp sayacımızı yazdırdıktan sonra “:” koyup karakterimizi yazdırıyoruz.Böylece Elimizde ASCII kodlara ait bir döküman oluşmuş olacaktır.Birde chr($sayac) yazarken tagları arasına yazıp kalınlaştırarak belirgin olmasını sağlıyoruz.

1
2
3
4
$i=0;
for ($i;$i<=255;$i++){
	echo "ALT+ $i :      <b>".chr($i)."</b>   <br>";
	}

Bu komutları çalıştırdığınızda neyle karşılaşacağınızı göreceksiniz ;)