• 05-11-2024, 17:58:25
    #1
    Merhabalar,
    PHP sitemde veri tabanından çekilen veriyi belirli bir karakterden sonra 'Devamını Oku' ve '...' olarak yazdırmak istiyorum. Örneğin çekilen veride karakter uzunluğu 50 den fazla ise 50 karakterden sonrasında 'Devamını oku' veya '...' yazsın. Konu hakkında desteğinizi rica ederim.

    <?php echo $vericek['icerik'] ?>
  • 05-11-2024, 18:00:47
    #2
    Chatgpt yazarsanız istediğiniz kodu size verecektir.
  • 05-11-2024, 18:01:37
    #3
    Web Tasarım ve Yazılım
    Merhaba,
    PHP ile veriyi belirli bir karakter sayısından sonra kısaltarak 'Devamını Oku' veya '...' gibi bir ifadeyle göstermek için substr fonksiyonunu kullanabilirsiniz. Aşağıda, 50 karakterden fazla olan metinleri kısaltan ve sonunda 'Devamını Oku' ifadesi ekleyen bir örnek bulabilirsiniz:
    <?php
    // Veritabanından çekilen veri örneği
    $veri = "Bu, veritabanından çekilen uzun bir metin örneğidir ve 50 karakterden fazla uzunluğa sahiptir.";
    
    // Karakter sınırını belirleyin
    $karakterSiniri = 50;
    
    // Metin uzunluğu kontrolü
    if (strlen($veri) > $karakterSiniri) {
        // Metni belirtilen karakter sayısına göre kısalt
        $kisaMetin = substr($veri, 0, $karakterSiniri) . '... <a href="devaminioku.php">Devamını Oku</a>';
    } else {
        // Metni olduğu gibi göster
        $kisaMetin = $veri;
    }
    
    // Sonucu ekrana yazdır
    echo $kisaMetin;
    ?>

    Açıklama:

    1. $karakterSiniri değişkeni ile sınır olarak belirlediğiniz karakter sayısını (örnekte 50) tanımlıyoruz.
    2. strlen fonksiyonu ile verinin karakter sayısını kontrol ediyoruz.
    3. Eğer veri, belirtilen sınırdan uzunsa substr fonksiyonu ile ilk 50 karakterini alıyoruz ve sonuna ... <a href="devaminioku.php">Devamını Oku</a> ekliyoruz.
    4. Eğer veri kısa ise olduğu gibi gösteriyoruz.
    Bu kod, karakter sınırını aşan metinler için kısaltılmış bir görünüm sağlayacak. Devamını Oku bağlantısını kendi sitenizde uygun bir sayfaya yönlendirebilirsiniz.
  • 05-11-2024, 18:16:40
    #4
    bostanci96 adlı üyeden alıntı: mesajı görüntüle
    Merhaba,
    PHP ile veriyi belirli bir karakter sayısından sonra kısaltarak 'Devamını Oku' veya '...' gibi bir ifadeyle göstermek için substr fonksiyonunu kullanabilirsiniz. Aşağıda, 50 karakterden fazla olan metinleri kısaltan ve sonunda 'Devamını Oku' ifadesi ekleyen bir örnek bulabilirsiniz:
    <?php
    // Veritabanından çekilen veri örneği
    $veri = "Bu, veritabanından çekilen uzun bir metin örneğidir ve 50 karakterden fazla uzunluğa sahiptir.";
    
    // Karakter sınırını belirleyin
    $karakterSiniri = 50;
    
    // Metin uzunluğu kontrolü
    if (strlen($veri) > $karakterSiniri) {
        // Metni belirtilen karakter sayısına göre kısalt
        $kisaMetin = substr($veri, 0, $karakterSiniri) . '... <a href="devaminioku.php">Devamını Oku</a>';
    } else {
        // Metni olduğu gibi göster
        $kisaMetin = $veri;
    }
    
    // Sonucu ekrana yazdır
    echo $kisaMetin;
    ?>

    Açıklama:

    1. $karakterSiniri değişkeni ile sınır olarak belirlediğiniz karakter sayısını (örnekte 50) tanımlıyoruz.
    2. strlen fonksiyonu ile verinin karakter sayısını kontrol ediyoruz.
    3. Eğer veri, belirtilen sınırdan uzunsa substr fonksiyonu ile ilk 50 karakterini alıyoruz ve sonuna ... <a href="devaminioku.php">Devamını Oku</a> ekliyoruz.
    4. Eğer veri kısa ise olduğu gibi gösteriyoruz.
    Bu kod, karakter sınırını aşan metinler için kısaltılmış bir görünüm sağlayacak. Devamını Oku bağlantısını kendi sitenizde uygun bir sayfaya yönlendirebilirsiniz.
    İlettiğiniz gibi sorunumu çözdüm. Desteğiniz için çok teşekkür ederim.
  • 05-11-2024, 18:17:45
    #5
    <?php echo substr($vericek['icerik'], 0, 50) . '...'; ?>

    substr kullanarak direk kısaltabilirsin
  • 05-11-2024, 18:20:44
    #6
    rowCount adlı üyeden alıntı: mesajı görüntüle
    <?php echo substr($vericek['icerik'], 0, 50) . '...'; ?>

    substr kullanarak direk kısaltabilirsin
    Desteğiniz için teşekkür ederim hocam
  • 24-11-2024, 03:36:29
    #7
    Aşağıdaki örnekler CodeIgniter 3'den.. Yıllar geçse de eskimez.
    mb_substr mb_strlen vs.. türkçe karakterli cümlelerde sorun yaşamanızı engellemiş olur.

    <?php
    function word_limiter($str, $limit = 100, $end_char = '…') {
        if (trim($str) === '') {
            return $str;
        }
    
        preg_match('/^\s*+(?:\S++\s*+){1,' . (int) $limit . '}/', $str, $matches);
    
        if (strlen($str) === strlen($matches[0])) {
            $end_char = '';
        }
    
        return rtrim($matches[0]) . $end_char;
    }
    
    function character_limiter($str, $n = 500, $end_char = '…') {
        if (mb_strlen($str) < $n) {
            return $str;
        }
    
        $str = preg_replace('/ {2,}/', ' ', str_replace(array("\r", "\n", "\t", "\v", "\f"), ' ', $str));
    
        if (mb_strlen($str) <= $n) {
            return $str;
        }
    
        $out = '';
        foreach (explode(' ', trim($str)) as $val) {
            $out .= $val . ' ';
    
            if (mb_strlen($out) >= $n) {
                $out = trim($out);
                return (mb_strlen($out) === mb_strlen($str)) ? $out : $out . $end_char;
            }
        }
    }
    
    $content = 'Bu, veritabanından çekilen uzun bir metin örneğidir ve 50 karakterden fazla uzunluğa sahiptir.';
    
    echo word_limiter($content, 10);
    echo '<br><br>';
    echo character_limiter($content, 20);