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>';
?>
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.
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
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
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
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
19 Mart 2008
@lestonix, vermiş olduğun örnek için çok teşekkür ederim. Böylece konu tamamen pekişmiş oldu :)
Yakuter web tasarım, yazılım geliştirme, IPhone uygulamaları gibi konular da Üreticy'yi öneriyor.
Masaüstünüzü iPad arayüzü şeklinde kullanabilmeniz ve uygulama merkezi sayesinde sunduğu onlarca uyg...
YouTube ve diğer popüler çevrimiçi video sitelerinden video indirmek istiyorsanız kullanabileceğiniz...
Elder Scrolls V Skyrim için Bethesda Softworks tarafından hazırlanmış duvar kağıtları....
Kaybettiğiniz, yanlışlıkla sildiğiniz veya virüslerden mağdur olduğunuz dosyalarınızı bu programla k...
Star Wars Knights of the Old Republic 2 oyunu için hazırlanmış en güzel duvar kağıtlarını sizin için...
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.