Php de Yazının Devamı Fonksiyonu Yapımı

Tarih: Kasım 4th, 2008 | Yazar: | Kategori: Php | Etiketler: , , , , , , , , , , , , , , , , , , , , , , , | 8 Yorum »

Merhaba arkadaşlar. Bir okuyucumuzdan mail aldım, aynı bu sitedeki gibi işte yazının devamı olayı nasıl yapılıyor diye. Bu yazımda sizlere yazının devamı fonskiyonu nasıl yapılır onu anlatacağım. Aslına bakarsanız kodlarımız oldukça kısa. Sadece mantığını kurmak gerekiyor. Böylece kendi fonksiyonlarımızı yaratabiliriz.

Bu konuyu bulmadan önce kağıt üzerine metin düzenlenmesi ile ilgili tüm bildiklerimi yazdım. Daha sonra str fonksiyonları üzerinde yoğunlaştım. İlk olarak yapmak istediğimi yapmama rağmen bunu yazdığımız blog sisteminede uyarlamak zorunda kaldım :) . Teorinin yanı sıra canlı örnek ile denemekte gerek :)

Arkadaşlar öncelikle kodlarımız bunlar;

{code type=php}<?php
$yazi = $_POST["yazi"];
$ara = “<—daha—>”;
$nerde = strpos($yazi, $ara);
if ($nerde !== false) {
$toplam = $nerde + 12;
$kes=substr($yazi,0,$toplam);
echo str_replace(“<—daha—>”, “Daha fazlası için tıklayın”, $kes);
}else{
echo $yazi;
}
?>{/code}

Şimdi ilk önce yazımızı alıyoruz.  Daha sonra strpos fonksiyonu için veriler tanımlıyoruz. Strpos fonksiyonun da diyelim Acbdada asdasda asdasd metininde istediğimiz veri aranıyor ( Örn: asdasda ), ekranada hangi pozisyonda olduğunu basıyor. Pozisyon tabi ki x ve ye kordinatları şeklinde değil. Cümle içerisinde arama yaparken bulunması gereken veriyi karakter karakter arıyor. Mesela örneğimizde poziyonu 8 olarak verecektir. İşte aynı wordpress teki gibi more yerine <—daha—> yapıyoruz. Bu daha verisini $yazi değişkenin de arıyoruz.

$nerde değişkenine işlem sonucunda iki veri atanıyor. Birinci pozisyonun sayısal değeri ikincisi ise bulunursa true, bulunmazsa false. Biz de if sorgusunda false ye eşit değilse şartı koyarak ilk kabuktaki işleme geçiyoruz. Eğer $yazi değikeninde $ara bulunursa ilk kabuk, bulunmazsa ikinci kabuk işleme giriyor.

İlk kabukta bir toplam verisi tanımladık. Bunun nedeni ise pozisyona + 12 katmaktı. Eğer neden +12 ekliyoruz derseniz <—daha—> komutunuda yazımızın içinde göstermek için böyle birşey yapıyoruz. <—daha—> 12 karakter olduğu için fonksiyonun sonuna kadar kesilme yapılmıyor. Peki son soru olarak neden <—daha—> yı gösteriyoruz derseniz onun cevabıda daha fazlası için tıklayın yazısını ekrana basmak için derim :)

Toplam verisinden sonra substr yani $yzai değişkenindeki metinin 0 pozisyonundan $toplam a kadar olan kısmı kesmek için gerekli olan fonksiyon geliyor.

Tüm kesme, biçme işlemlerinden sonra str_replace yani belirli bir veriyi değişme fonksiyonu geliyor. Php kodlarını tersten giriyoruz bu sefer. $kes değişkeninde <—daha—> yı bul ve Daha fazlası için tıklayın olarak değiştir diyoruz böylece son işlemide gerçekleştiriyoruz.

Son olarak eğer $yazi değişkeninde <—daha—> yoksa kesilme işlemi yapılmadan ekrana basılacağı için herhangi bir fonksiyon girmiyoruz.

İşte more yani daha fonksiyonu bu mantıkla yapılıyor. Herhangi bir adapte sorunu olursa sorabilirsiniz.

Herkese iyi günler, iyi çalışmalar…




Benzer Yazılar;

coded by nessus

“Php de Yazının Devamı Fonksiyonu Yapımı” yazısında 8 Ahkam var.

  1. 1 Burak Atılay 14:24 on Kasım 4th, 2008 anında kesmiş:

    Eklediğiniz için teşekkür ederim derslerinizin devamını dilerim

  2. 2 Burak Atılay 15:27 on Kasım 4th, 2008 anında kesmiş:

    $cek = mysql_query(“SELECT * FROM yazilar ORDER by id DESC LIMIT 0,04″);
    while($yaz=mysql_fetch_array($cek)){
    $id = $yaz['id'];
    $baslik = $yaz['baslik'];
    $icerik = $yaz['icerik'];
    $kisaicerik = substr(“$icerik”, 0,330);
    $gonderen = $yaz['gonderen'];
    $tarih = $yaz['tarih'];
    $hit = $yaz['hit'];

    Hocam böyle bişey daha kısa sanki ?

  3. 3 Youngwe 19:34 on Kasım 4th, 2008 anında kesmiş:

    bu kod oldukça eksik. örnekte ise belirli bir noktadan kesiyor. konuya göre yetersiz kalabilir :/

    iyi günler, iyi çalışmalar…

  4. 4 Burak Atılay 20:52 on Kasım 4th, 2008 anında kesmiş:

    $kisaicerik = substr(”$icerik”, 0,330);

    bunu örnek göstermek istemiştim hocam

  5. 5 Youngwe 21:05 on Kasım 4th, 2008 anında kesmiş:

    hmm anladım. yanlız biz burada daha yı bularak işlem yapıyoruz. yani onun > karakterine olan kısmı çekmemiz lazım. eğer siz 300 gibi sabit sayılar girerseniz o direk kesme işlemi yapacaktır. cümle bitmese bile kesecektir. benim yaptığım formülün daha farklısı da olabilir tabi. yanlız dediğim gibi bu formül gerekli daha olayı için.

  6. 6 Another Example 01:03 on Kasım 17th, 2008 anında kesmiş:

    <?php
    $etiket = ‘Devamı için tıklayınız’;
    $yazi = str_replace(‘‘,$etiket,$_POST['yazi'],$sayac);
    if($sayac >= 1)
    {
    $parcala = explode($etiket,$_POST['yazi']);
    echo $parcala[1];
    } else {
    echo $yazi;
    }
    ?>

    Php5

  7. 7 pax 23:12 on Temmuz 23rd, 2009 anında kesmiş:

    Saol hoca İşime Yaradı

  8. 8 Ömür BAŞGÜL 22:58 on Haziran 1st, 2011 anında kesmiş:

    Merhabalar,

    04-Kasım-2008 de eklenmiş ve halen güncelliğini koruyor.

    Kod için teşekkürler…


Ahkam Kesme Aparatı

  • *