Php ile karakter sayısı sınırlama

Tarih: 26 Aralık 2009   Yazar: admin  |  2.376 kez okundu
Php ile karakter sayısı sınırlama

Bir çok web sitesinde yayınlanan uzun yazılar görünümü bozmamak amacıyla belli bir karakter sayısından sonra kesilerek “Devamını Oku »” bağlantısı eklenir ve bu şekilde yazının kalan kısmını okuyabiliriz. Peki böyle bir özelliği php ile nasıl yapabiliriz?

Eğer sizde web sitenize böyle bir “Devamını Oku »” bağlantısı eklemek istiyorsanız, kullanacağınız yöntemlerden biride substr kullanarak metini sınırlandırmak. Aşağıda bir örnek vererek substr ile metni nasıl sınırlandırabilirsiniz gösterdim. Umarım işinize yarar. Ayrıca hertürlü sorunuzu yorum formunu kullanarak sorabilirsiniz. En kısa zamanda cevaplamaya çalışacağım.

<?php
 // Sınırlandıralacak yazınız.
 $yazi = "deneme metin buraya yazılacak veya dbden alınacak size kalmış";
 // Yazının karakter sayısı.
 $uzunluk = strlen($yazi);
 // Sınırlandıralacak sayı.
 $sinir = 20;
 // Yazının uzunluğunun sınırdan büyük olup olmadığını kontrol et.
 if ($uzunluk > $sinir) {
 // Eğer büyükse Devamını Oku yazısını ekle.
 $icerik = substr($yazi,0,$sinir) . "&nbsp;" . "Devamını Oku &raquo;";
 }
 // İçeriği ekrana yazdır.
 echo $icerik;
 ?>

    Bu yazı için 6 yorum yapılmış.
  1. Volkan AĞAOĞLU dedi ki:

    A benim canım yazarım sana 100 puanlık uzmanlık sorusu sorayım da en azından işe yarar bi konu şeettirmiş olasın ;

    Mesela bi linki kısalttırmak istiyoruz linkte diyelim ki sorbize.com olsun karakter sınırlamasıda 11 olsun linkimiz de sorbize.com şelinde olsun bu linki düzgün bir şekilde yukardaki fonksiyonlarla gösterebilirsen uzmanlığın tescillenmiş olur bilesin

  2. Burak Dülgar dedi ki:

    Merhaba,
    Öncelikle yorumunuz için teşekkür ederim. Yukarıdaki örneği sadece “substr” kullanımını göstermek için yaptım. Ancak bahsettiğiniz gibi bir eşitlik durumu olursa aşağıdaki gibi if else kullanarak sorunu çözebilirsiniz.

    if ($uzunluk > $sinir) {
    $icerik = substr($yazi,0,$sinir) . ” ” . “Devamını Oku »”;
    }
    else{
    echo $yazi;
    }

  3. Ali OYGUR dedi ki:

    Volkan AĞAOĞLU fıs oldu :)

    @Burak DÜLGAR

    if(amac == “substr fonksiyonunu anlatmak”):

    tamam eyw teşekkür ederiz.

    else(amac == “yazılar eğer kısaltılmak isteniyorsa bu şekilde kısaltılmalıdır”):

    yok işte orda dur.

    bu yanlış bir mantıktır. mesela kullanıcı yazısında bir html etiketi kullanmış ise örneğin bununda tam sınırlamaya denk geldiğini düşünürsek. böyle cıkacaktır <img src="site.. devamını oku

    veya bazende argo gelimeler cıkabiliyor en sonda örneğin s.., a. vs.

    bence en doğru yöntem şöyledir;

    yazının arasına nerede kesmek istiyorsak bir işaret koymalı daha sonra php ile o işareti aratıp varsa yazıyı tamda ordan kesmeliyiz.

    "bu bemim yazım olsun arkadaşlar nasılsınız iyimizinizumarım iyisinizdir çünkü biz burda sizlerle bişeyler paylaşmak için kı.ımızı yırtıyoruz.”

    php ile aratılıp metin tamda ordan kesilmelidir.

    Saygılarımla

    Ali OYGUR

  4. Burak Dülgar dedi ki:

    @Ali OYGUR

    Elbette benim örnekte verdiğim gibi kodu direk kullanırsak, dediğiniz gibi bir çok eksiklik çıkacaktır. Amacım sadece substr fonksiyonunun amacını ve kullanım şeklini göstermekti. Yorumunuz ve önerileriniz için teşekkür ederim.

  5. Ferid Hakan dedi ki:

    Sn. Burak Dülgar

    Benim problemim anasayfadaki özetin karakter sayısı değil; yazının -post- tamamını mesela 500-700 karakter ile otomatikman sınırlamak istiyorum…

    Yardımınızı esirgemeyeceğinizi biliyorum. Şimdiden çok, çok teşekkür ederim.

  6. Ali şahin dedi ki:

    Teşşekür ediyorum.
    Bu yorumu yorumun önemini bildiğim için yapıyorum :D


Yorum yazmak istermisiniz?

Sorbize RSS Beslemesi    Sorbize E-Posta Aboneliği    Sorbize'yi Facebooktan Takip Edin    Sorbize'yi Twitter'dan Takip Edin    Abone

Yazılar E-Posta'na Gelsin:

Lazım Olabilir
  • Webmaster Portalı
  • Url Kısaltma Servisi
  • Sorbize.com bir çok kategoride güzel ve özgün makaleler okuyabileceğiniz güncel web 2.0 bir blogdur.
    © Tüm Hakları Saklıdır.
    Bu websitesi DMCA Protection ile lisanslanmıştır. Yazılar kaynak belirtilmeden kullanılamaz.