PHP’de Yazı Diziminin Belirli bir Kısmına Erişmek veya Değiştirmek

Problem:Yazi diziminin(String ifade) tamami degilde belirli bir kismina erismek veya degistirmek istiyorsunuz.
Cevap:Bunun icin substr () ve substr_replace () fonksiyonlarini kullanabilirsiniz.

PHP “yazi dizimi”(string) verilerine bir byte dizisi olarak degilde basit veri tipi olarak muamale eder.Bu nedenle onlara substr () ve substr_replace () gibi fonksiyonlar ile ulasabilir ve/veya belirli bir kisim veya karekterlerini degistirebilirsiniz.

Substr fonksiyonu 3 argument almaktadir.Bunlardan ilki operasyona ugrayacak string degiskenin adini belirlemek icin kullanilir.Ikinci argument ile indexin baslangici tayin edilir.Eger bu argument pozitif (+) ise saymaya “yazi diziminin” basindan baslanir.Eger bu argument (-) ise o zaman index baslangici olarak “yazi diziminin” sonundan baslanir ve oradan itibaren sayim yapilir.Ucuncu argument ile “yazi dizimi” icinde aranan keime uzunlugu girilir.

 
<?php
$cumle = "Bir muhendisle iletisim kurmak cogu zaman bir olu ile iletisim kurmaktan daha zordur";
$iletisim = substr ($cumle, 16, 8); //iletisim
$iletisim = substr ($cumle, -23, 8); //Gene iletisim bu sefer tersten
$orta_kisim = substr ($cumle, 25, 11); //cogu zaman
$son_kisim = substr ($cumle,-11); //daha zordur
$son_karekter = substr ($cumle, -1); //r harfi
$son_kelime = substr ($cumle, -6); //zordur
?>

Peki bir ifade icinde belirledigimiz bir yere kadar yapilacak okumlari nasil tayin edecegiz?Bunun icin strpos () onksiyonu kullanilmaktadir.Verilen “yazi dizimi” icerisinde ilk karekterden baslayarak belirlenen karektere kadar olan kismi sayar.

 
<?php
$eposta = 'mehmetkaya@bilgisayarbilgisi.com';
$kullaniciadi = substr ($eposta, 0, strpos (eposta, '@' ));
//$kullaniciadi degiskeni artik mehmetkaya degerini saklamaktadir.
?>

substr () fonksiyonu ile istenilen bir reg.exp ifadeside kullanilabilir.Ornek vermek gerekirse,(reg.exp. ile ilgili makaleye ersivden ulasilabilir.)

 
<?php
if (ereg ("aranankelime", substr ($cumle, -15))) {
print "Cumlenin son 15 karekteri icinde aranankelime ile eslesen";
}
?>

Be the first to comment

Leave a Reply

Your email address will not be published.


*