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.

yakuter.com © 2006-2008 Erhan Yakut. Site tasarım fallendesign.
Site içerisindeki içerikler izinsiz kopyalanamaz, alıntı yapılamaz.
1 brsyuksel
05 Şubat 2008, 18:16
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 :)
2 yakuter
10 Şubat 2008, 12:40
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 ;)
3 lestioni
19 Mart 2008, 13:38
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‘;
4 lestioni
19 Mart 2008, 13:40
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 :)
5 yakuter
19 Mart 2008, 13:52
@lestonix, vermiş olduğun örnek için çok teşekkür ederim. Böylece konu tamamen pekişmiş oldu :)