Php İle Metin Sınırlama

Başlığa ne ad vereceğime bir türlü karar veremedim. Mesela sitenizde haberler bölümü var ve anasayfada haberlerin ilk 500 karakterinin gözükmesini istiyorsunuz. Yazının sonunda devamı… yazsın. Devamına tıklandığında yazının tamamı görünsün. İşte metin sınırlama derken bunu kastediyorum :)

Bu kodla veritabanındaki yazı eğer 500 karakterden büyükse 500ncü karaktere kadar ekrana yazıp sonunda “devamı…” yazar.

 //Goruntulencek Metnin Tam Hali
$detay = $row_HaberListele['detay'];
//Var olan metin içindeki karakter sayısı
$uzunluk = strlen($detay);
//Kaç Karakter Göstermek İstiyorsunuz
$limit = 500;
//Uzun olan yer "devamı..." ile değişecek.
if ($uzunluk > $limit) {
$detay = substr($detay,0,$limit) . "devamı...";
}
echo $detay;

Kelime sayısına göre sınırlama

<?php
// önce yazıyı kelimelere bölelim..
$kelime = explode(" ",$yazi);
// kaç kelime oldu bakalım..
$say = count($kelime);
// sınır belirleyelim..
$sinir = 40;
// eğer metindeki kelime sayısı sınırımızdan az ya da eşit ise yarısını keselim..
if($say <= $sinir) { $kes = $say*50/100; }
// sınırdan çok ise, sınır belirlediğimiz kelime sayısı olsun..
else { $kes = $sinir; }
// yazıyı ekrana basalım..
for($i = 0; $i <= $kes; $i++)
{ echo $kelime[$i].' ' ; }
// devam yazısı..
echo ' <a href="#">devamı burada</a>';
?>

Benzer Yazılar

yakuter

Erhan Yakut

www.yakuter.com

Genç yaşlarda programlama ile tanıştı ve Delphi ile başladığı programlama macerasına şuanda PHP, SQL, Javascript, AJAX, CSS, XHTML teknolojileri ile devam etmektedir. Elektrik - Elektronik bölümü mezunu olan "yakuter" 2006 yılından itibaren yakuter.com'un yazarlığını yapmaya başlamıştır.

Bu Yazıya Ait Yorumlar

brsyuksel

brsyuksel
05 Şubat 2008

Yakuter selamlar öncelikle. Bahsettiğin yöntem sık kullanılan bir yöntem. Ancak kimi zaman öyle bir noktada bölüyor ki koca metini, sinir küpü olmamak elde değil. Bu nedenle verdiğin yöntemi biraz değiştirerek şöyle bir mantık izlenebilir.

Metin içerisinde sürekli tekrarlanan bir karakter taban alınır. Örneğin: nokta ya da boşluk gibi. Daha sonra explode ile bir array değişkenine metin içerisinde ki yazılar yazılır. Array hesabı alındıktan sonra istenilen kelime ya da cümle kadar döngüye sokulur. Sonra ver devamı diye gitsin :)

Verdiğim mantıkta sorun çıkarabilecek olanlar boşluklar veya noktalardır. Ancak döngü içerisinde arraylar dökülürken, bu sorun giderilir. Hece hesabından iyidir diye düşünüyorum :)

Yanlış anlama paylaşımını baltalamak değil amacım, sadece gönlümden geçti paylaşmak istedim.

Kendine çok iyi bak :)

yakuter

yakuter
10 Şubat 2008

Estağfurullah Barış ne baltalaması. Tam tersine böyle makaleyi geliştirici yorumlar geldikçe daha da memnun oluyorum. Ne de olsa burada maksat bu konuyu öğrenmek isteyenlere bir şeyler verebilmek.

Çok teşekkür ederim değerli yorumun için ;)

lestioni

lestioni
19 Mart 2008

brsyuksel’in dediğine katılıyorum ben de.. bu gibi durumlarda karakter değil de kelime sayısına göre kesmek daha mantıklı oluyor biraz.. kendi kullandığım yöntem şu şekildedir:

// önce yazıyı kelimelere bölelim..
$kelime = explode(” “,$yazi);
// kaç kelime oldu bakalım..
$say = count($kelime);
// sınır belirleyelim..
$sinir = 40;
// eğer metindeki kelime sayısı sınırımızdan az ya da eşit ise
// yarısını keselim..
if($say <= $sinir) { $kes = $say*50/100; }
// sınırdan çok ise, sınır belirlediğimiz kelime sayısı olsun..
else { $kes = $sinir; }
// yazıyı ekrana basalım..
for($i = 0; $i <= $kes; $i++)
{
echo $kelime[$i].’ ‘;
}
// devam yazısı..
echo ‘ devamı burada’;

lestioni

lestioni
19 Mart 2008

echo ‘ devamı burada yazan yerde yazi.php?oku=$id şeklinde bir bağlantı verdim ama direkt bağlantı olarak çıktı :/ yorumlara kod eklememiştim bu şekilde daha önce, kusura bakmazsınız artık.. bağlantı vermeyi biliyorsunuzdur zaten :)

yakuter

yakuter
19 Mart 2008

@lestonix, vermiş olduğun örnek için çok teşekkür ederim. Böylece konu tamamen pekişmiş oldu :)

Peki ya sizin düşünceleriniz?

Facebook Grubumuz Twitter Wordpress Linked in Google Friendfeed RSS Beslemesi Feedburner RSS

Yakuter web tasarım, yazılım geliştirme, IPhone uygulamaları gibi konular da Üreticy'yi öneriyor.

TAMindir.com - Yeni Programlar

iPadian - Windows

Masaüstünüzü iPad arayüzü şeklinde kullanabilmeniz ve uygulama merkezi sayesinde sunduğu onlarca uyg...

ClipGrab - Windows

YouTube ve diğer popüler çevrimiçi video sitelerinden video indirmek istiyorsanız kullanabileceğiniz...

Elder Scrolls V Skyrim Duvar Kağıtları - Windows

Elder Scrolls V Skyrim için Bethesda Softworks tarafından hazırlanmış duvar kağıtları....

Undelete 360 - Windows

Kaybettiğiniz, yanlışlıkla sildiğiniz veya virüslerden mağdur olduğunuz dosyalarınızı bu programla k...

Knights of the Old Republic 2 Duvar Kağıtları - Windows

Star Wars Knights of the Old Republic 2 oyunu için hazırlanmış en güzel duvar kağıtlarını sizin için...

Abonelik

Yazılan yazılardan ilk siz haberdar olun, yeni yazılar e-postanıza gönderilsin.

yakuter.com © 2006-2010 Erhan Yakut. Site tasarım Cenk Akyıldız - (Tema Bilgisi).
Site içerisindeki içerikler izinsiz kopyalanamaz, alıntı yapılamaz.