substr() Kullanımı - PHP Fonksiyonları
PHP Genel 28 Aralık 2007 - 1,140 viewsPhp kütüphanesindeki önemli fonksiyonlardan bir tanesi de substr() fonksiyonudur. Karakter grubu üzerindeki belirlenen bölgeyi almaya yarar. Yani bir isim veya bir cümle üzerindeki belli bir parçayı kopyalayıp belirlediğimiz değişkene atamaya yarar.
substr() Fonksiyonu Kullanımı:
substr ($degisken, $baslangic, $sayi) şeklinde 3 adet bölüme sahiptir bunları inceleyecek olursak;
- $degisken: Bu kısım işlemi yapacağımız cümle veya karakter grubunun bulunduğu değişkeni içerir.
- $baslangic: Değişken içinde hangi karakterden kopyalama işlemine başlanacağını bu belirler. (-) negatif değerler alabilir.
- $sayi: Başlangıç karakterinden itibaren kaç karakterin kopyalanacağını belirler.
substr() Fonksiyon Örnekleri:
İlk örneğimizde "Php deneme ve örnekler" adlı cümlemizdeki ilk 5 karakteri belirlediğimiz değişkene atamaya yarayan bir php kod hazırlayalım. Bu örnekteki başlangıç değerinin -5 olmasına dikkat edelim. Yani geriye doğru 5 karakter say anlamındadır. Geriye doğru ilk karakteri, cümledeki son harf olan "r" olduğunu biliniz. Geriye doğru ikinci karakter ise "e" dir.
<? php
$degisken = 'Php deneme ve örnekler';
$sonhali = substr($degisken, 0, 5); // "Php d"
?>
Sonuç olarak yeni değişkenimize "Php d" değeri atanacaktır.
Yeni örneğimizde ise aynı cümlenin sondan 5 karakterini değişken içine atayalım.
<? php
$degisken = 'Php deneme ve örnekler';
$sonhali = substr($degisken, -5, 5); // "ekler"
?>
Sonuç olarak yeni değişkenimize "ekler" değeri atanacaktır.
Mesela elimizdeki kelime sayısından daha çok bir kopyalama işlemi yapılmaya çalışılırsa; Örnek olarak değişkenimiz "Elma" olsun burada seçilen 13 karakter say komutunun bir işlevi olmayacaktır. Çünkü değişkenimiz sadece 4 karakterdir ve 4 karakter üstünde işlem yapılmayacaktır.
<? php
$degisken = 'Elma';
$sonhali = substr($degisken, 0, 13); // "Elma"
?>
Sonuç olarak yeni değişkenimize "Elma" değeri atanacaktır.
Bu örneğimizde ise yukarıdaki cümlenin 4. karakterinden itibaren 12 karakterini kopyalamak istersek.
<? php
$degisken = 'Php deneme ve örnekler';
$sonhali = substr($degisken, 3, 12); // "deneme ve ör"
?>
Sonuç olarak yeni değişkenimize "deneme ve ör" değeri atanacaktır.
Burada dikkat edilmesi gereken başlangıç karakteri 0 dan başlamaktadır yani 4. karakterden başlamak istersek yapmamız gereken başlangıç bölümünü 3 yapmak olacaktır. Yukarıdaki örnekte anlatmak istediğimiz gözükmektedir.
Son örneğimizde ise gösterilecek karakter sayısı 20 den fazla olduğu zaman tabloda ve tasarımda bozukluk oluşturacak bir kodu engellemek için 20 karakterden fazlasını gösterirken ilk 17 karakteri alan ve son 3 karakter yerine nokta koyan yani sonuç olarak tablo içinde 20 karakter gösteren bir kod uygulamasını inceleyelim. Örnekte ayrıca değişken içindeki karakter sayısını saymak için strlen() fonksiyonu kullanılmıştır.
<? php
$degisken = 'Tablo içinde gösterilecek olan değişken';
if (strlen($degisken) > 20) {
$sonhali = substr($degisken, 3, 12); // "Tablo içinde göst"
$sonhali = $sonhali . '...';
}
?>
Sonuç olarak yeni değişkenimize "Tablo içinde göst..." değeri atanacaktır.
Bu fonksiyon ile uygulamalarımızda birçok işlem yapabiliriz. Mesela tablo içinde yeterli olmayan bölgelerde kısaltma işlemi yapabilir veya devamı için tıklayınız şeklinde özellikle makale scriptlerinde kullanılan uygulamalar geliştirebiliriz.
Gerçekden guzel bir yazı olmuş manual a bakmaya bile gerek yok kafadaki soru işaretlerini alan bir yazı. tşk ederim.
Teşekkürler yalnız birşey sormak istiyorum. ben karakter sınırlaması değilde kelime sınırlaması yapmak istiyorum örneğin:
substr foksiyonu ile 12 karakter olarak bir sınırlama yaptık ve değişkenin bulunduğu yerde “blog,genel,wordpress,firefox “kelimeleri var. substr foksiyonu 12 olarak girdiğim için bu “blog,genel,fi” olarak görülüyor. bunu engellemek için ben kelime bazında sınırlama koymak istiyorum. yani yukarıdaki örnekteki gibi “firefox” kelimesini “fi” olarak kalmasın bunu nasıl yapabilirim? iyi çalışmalar.
Selamlar Hakan
Belirttiğin gibi bir işlem yapmak için kullanman gereken bazı farklı fonksiyonlar olacaktır. Mesela aradaki virgülleri saydırman gerekebilir bunun için ilk önce kaç karakterlik bir kelime istiyorsan onu gir.
Senin cümlenin örnek olarak seçelim “blog,genel,wordpress,firefox” ve 12 karakter limiti kullanalım. Normalde seninde belirttiğin gibi “blog,genel,f” şeklinde bir bölüm seçecektir. Biz ise sadece “blog,genel” göstermesini istiyoruz.
Burada yapılması gereken ilk olarak substr fonksiyonu kullanarak 12 harflik yeni kelimeyi bir değişkene atayalım. Bu işlemden sonra explode fonksiyonu ile sistemi virgüle göre dizilere ayıralım. Bu ayırmadan sonra count fonksiyonu ile dizi kaç elemanlı onu saydır. Karşına 3 sonucu çıkacaktır. En son virgülden sonraki dizi eleman “f” dir yani yapılması gereken çıkacak dizi sayısından bir eksik olanı yani 1 ve ikinci dizi elemanının implode fonksiyonu ile birleştirmen olacaktır. Birleştirirken aralara virgül eklettirmesini implode ile sağlayabilirsin. Bu işlem ile işe yaramaz olan dizinin 3. elemanı “f” sistemden kaldırılacak 1 ve 2. elemanı olan “blog” ve “genel” implode fonksiyonu ile birleştirilerek blog,genel şeklinde olacaktır. Bahsettiğim fonksiyonlarda explode ile ilgili detaylı açıklama blogta mevcut. Diğerleri için php.net i kulalnabilirsin!
Umarım açıklayıcı olmuştur.
teşekkürler, yapmaya çalışıyorum