Merhaba arkadaşlar bir konu hakkında yardıma ihtiyacım var konu databaseden gelen makalelerdeki yazıları mesela 50 kelimelik bölümlere ayırıp bunları ayrı ayrı yazabilecegim kod bir türlü beceremedim yardım edecek arkadaşlara şimdiden teşekkürler
<?php
$yazi = $cek['icerik'];
$kelime = explode(" ",$yazi); // önce yazıyı kelimelere bölelim..
$say = count($kelime); // kaç kelime oldu bakalım..
$sinir = 100; // sınır belirleyelim..
if($say <= $sinir)
{ $kes = $say*50/100; } // eğer metindeki kelime sayısı sınırımızdan az ya da eşit ise yarısını keselim..
else { $kes = $sinir; } // sınırdan çok ise, sınır belirlediğimiz kelime sayısı olsun..
for($i = 0; $i <= $kes; $i++) // yazıyı ekrana basalım..
{
echo $kelime[$i]." ";
}
?>
makaleyi belirli sayıdaki kelimelerle bölme konusunda yardım
6
●296
- 03-10-2016, 08:30:24webkolog adlı üyeden alıntı: mesajı görüntüle
kodda sıkıntı yok makalelerin başlarından istedigim kelime kadar kesiyorum ama verdiginiz tedbiri yinede uyguladım sorun şu makalenin içerisine ads reklamları gömücem ama makalenin ilk kısmını çekebiliyorum sonraki kısmını alamıyorum
$yazi = $cek['icerik'];
$yazi = preg_replace('/\s+/',' ',$yazi); //art arda birden çok boşluk olursa mantıksal hatanın önüne geçecektir
$kelime = explode(" ",$yazi); // önce yazıyı kelimelere bölelim..
$say = count($kelime); // kaç kelime oldu bakalım..
$sinir = 50; // sınır belirleyelim..
if($say <= $sinir)
{ $kes = $say*50/100; } // eğer metindeki kelime sayısı sınırımızdan az ya da eşit ise yarısını keselim..
else { $kes = $sinir; } // sınırdan çok ise, sınır belirlediğimiz kelime sayısı olsun..
for($i = 0; $i <= $kes; $i++) // yazıyı ekrana basalım..
{
echo $kelime[$i]." "; //verilen kelime kadar ekrana bas
}
echo "ads reklam";
echo $kelime[$i]." "; //kalan kelimeleri ekrana bas - 03-10-2016, 08:40:22Oradaki sınır ne amaçlı?
Kodlarının $say = count($kelime); satırından sonra tekrar kodladım:
$yazi = $cek['icerik']; $yazi = trim(preg_replace('/\s+/',' ',$yazi)); $kelime = explode(" ",$yazi); $say = count($kelime); $kalan_say = $say; $ilk_dongu_say = ceil($say / 50); $son_dongu_say = 50; $kelime_gruplari = array(); $sayac = 0; for ($i = 0; $i < $ilk_dongu_say; $i++) { if ($kalan_say < 50) $son_dongu_say = $kalan_say; for ($j = 0; $j < $son_dongu_say; $j++) { $kelime_gruplari[$i][$j] = $kelime[$sayac]; $sayac++; } $kalan_say = $kalan_say - 50; }//bu eşkilde kullanabilirsin:
$kelime_gruplari[0][0]; //1. 50 grubun ilk kelimesi
$kelime_gruplari[1][0]; //2. 50 grubun ilk kelimesi
$kelime_gruplari[0][4] //1. 50 grubun 5. kelimesi - 03-10-2016, 09:27:18oradaki sınır mesela haberde 1000 kelime var bu 1000 kelimeyi haberler sayfasına basmamak için sınırlama getiriyor yani 50 kelime say haberler sayfasında bas normalde haber sayfasında direkt içerigi çagırıyordum ama reklam performansı düşük bu nedenle reklamı haberin belli bir karakt erden sonrasına gömücem
koddaki mantık şu
yazıyı al
yazıyı kelimelere çevir kaç kelime var say şayet kelimeler sınırdan düşükse ekrana bas
fakat kelimeler sınırdan büyükse sınır kadar olanını ekrana bas
istedigim ise haber içerisinde bu sınırdan sonrakinide ekrana bas ama bir türlü çözemedim hep ilk kelimeleri çagırıyor
video ekledim bakabilirsiniz
https://youtu.be/WfqeFH580XI - 03-10-2016, 13:08:39Tamam işte, bu yazdığım kod o işi görüyor.
Şu kodlarla test edebilirsin:webkolog adlı üyeden alıntı: mesajı görüntüle
$grup_say = 1; $kelime_say = 1; foreach ($kelime_gruplari as $kelimeler) { $kelime_say = 1; echo "<strong>".$grup_say.". KELİME GRUBU:</strong><br>"; foreach ($kelimeler as $kelime) { echo $kelime." (".$grup_say.". gruptaki ".$kelime_say.". kelime)<br>"; $kelime_say++; } echo "<hr>"; $grup_say++; } - 03-10-2016, 14:06:36o kadar php bilgim olsa neden olmasın ama senin söyledigin gibi degil
benim istedigim örnegin makaleden 100 cü kelimeden sonra reklam koymak ardından yazıya devam etmek.
edit
sıkıntılı bir süreçti geçici çözümlerle hallettim ama kod hala içime sinmiyor kelime bazlı degilde karakter bazlı bölme uyguladım buda yazıda html kodu varsa onuda bölerki istenmeyen durum olur haberlerimde pek html kodu kullanmadıgım için idare eder işte
bu sayede reklamlarıda responsive yaptık
kontrol etmek isteyen için link http://merzifon.com/haber.php?id=288
<?php $yazi = $makale_cek_yeni['icerik']; $uzunluk = strlen($yazi); //yazıda kaç karakter var $sonuc = trim( strrev( strstr( strrev( substr($yazi,0,1000) ), " " ))); //ilk bölümü ters yüz ederek boşluga kadar bulma $kesim = strlen($sonuc); //kesilecek kısmın karakter sayısını bulma echo $sonuc; //kesilen ilk kısım ?> <div class="ads"><?php include("ads.php");?></div> <?php $devami = substr($yazi, $kesim, $uzunluk); //devamını döküyoruz echo $devami; ?>
kontrol etmek isteyen için link