MultiServis.Net //PHP El Kitabı

<<= Önceki Sayfa | PHP Ana Sayfa | Sonraki Sayfa =>>

Yazi diziminin belirli bir kismina erismek veya degistirmek istiyorsunuz. Yazar: Serkan Tarih: 01/03/02

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

<<= Önceki Sayfa | PHP Ana Sayfa | Sonraki Sayfa =>>