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 = 'serkan@turk-php.com';
$kullaniciadi = substr ($eposta, 0, strpos (eposta, '@' ));
//$kullaniciadi degiskeni artik serkan 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";
}
?>
Serkan
serkan@turk-php.com
|