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"; } ?>
Leave a Reply