Navigate / search

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

Strpos() ile Değişken İçinde Arama Yapmak

Strpos() fonksiyonun birden fazla kullanım çeşidi vardır.Derslere başlamadan önce bunların ikisini belirtmek istiyorum.İlki metin içinde aradığımız değerin asıl metinin içindeki karakter sırasını belirtir.İkinicisi ise bir sorgu komutuyla birlikte kullanıp bir değişken içinde belirttiğimizi metnin olup olmadığını sorarız.Şimdi ilkiyle başlayalım dersimize.Daha öncesinde strpos komutunun kullanımını gösterelim.

strpos($degisken,"aranacak_kelime");

Bir metin oluşturup değişkenimize aktarıyoruz.bu değişkenin içinde geçen “Bilişim” kelimesini aratıyoruz. ve Bilişim kelimesi metin içinde kaçıncı karakterden itibaren başladığını göruyoruz.

1
2
$metin="Şafak Bilişim ile Php Dersleri";
echo strpos($metin,"Bilişim");

Ekrana 6 sayısı gelecektir.Normal olarak saydığınızda 7 karakterden itibaren başladığını göreceksiniz ama saymaya sıfırdan başladığınızda ekrana gelen 6′nın doğru olduğunu görürsünüz.

Şimdi gelelim Strpos() fonksiyonun ikinci kullanımına;
Şimdide if ile strpostan dönen verinin True yada False olup olmadığını sorgulayacağız.Strpos değişkeninde belirttiğimiz değer metin içinde geçiyorsa True geçmiyorsa false değerini verecektir.bu seferki örneğimizde belirttiğimiz değer metin içinde olmasın.

1
2
3
4
5
6
$metin="Şafak Bilişim ile Php Dersleri";
if (strpos($metin,"html")){
      echo "Belirttiğiniz değer metin içinde mevcut";
}else{
      echo "Belirttiğiniz değer metin içinde mevcut değil";
}

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 ;)

Ord() ile Karakterin ASCII Kodunu Bulmak

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.

Php de kullanacağımız Ord() komutu parantez içine yazdığımız karakterin bize bilgisayarın anladığı dildeki ASCII kodunu vermektedir.Şimdi bir örnekle Ord() Komutunu görelim.

1
2
3
4
5
echo ord("A")."<br>";
echo ord("S")."<br>";
echo ord("2")."<br>";
echo ord("Ş")."<br>";
echo ord("ø")."<br>";

Bunları yazdığımızda ekrana gelecek olan parantez içindeki karakterleri ASCII kodlarıdır.

65
83
50
83
248

Daha iyi anlamamızı sağlamak için komutları şöyle düzenleyebiliriz.

1
2
3
4
5
echo "A harfinin ASCII karşılığı :".ord("A")."<br>";
echo "S harfinin ASCII karşılığı :".ord("S")."<br>";
echo "2 harfinin ASCII karşılığı :".ord("2")."<br>";
echo "Ş harfinin ASCII karşılığı :".ord("Ş")."<br>";
echo "ø harfinin ASCII karşılığı :".ord("ø")."<br>";

Ve çıkan sonuçta şöyle bir şekil alacaktır.

A harfinin ASCII karsiligi :65
S harfinin ASCII karsiligi :83
2 harfinin ASCII karsiligi :50
S harfinin ASCII karsiligi :83
ø harfinin ASCII karsiligi :248