• 16-01-2023, 00:13:31
    #1
    Merhaba.
    Veritabanından <?php echo $row['video_baslik']; ?> şeklinde başlıklarımı çekiyorum fakat bazı başlıkların karakterleri çok uzun olduğu için html tabloda taşma oluyor.
    <?php echo mb_substr ($row['video_baslik'],0,100); ?> şeklinde olmuyor. Başlıkkarakterleri aynı sayıda geliyor yani kısalmıyor.
    Nasıl çözüm bulabilirim
  • 16-01-2023, 00:15:52
    #2
    En güvenlisi budur eğer bu yazdığınız kodda başlık kısalmıyorsa 100 karakter bile uzun demektir. 100 yierne 50 yazın duruma göre yükseldir veya düşürürsünüz.
  • 16-01-2023, 00:16:59
    #3
    blap adlı üyeden alıntı: mesajı görüntüle
    En güvenlisi budur eğer bu yazdığınız kodda başlık kısalmıyorsa 100 karakter bile uzun demektir. 100 yierne 50 yazın duruma göre yükseldir veya düşürürsünüz.
    hocam 10 karaktere kadar denedim olmuyor
  • 16-01-2023, 00:22:48
    #4
    aLLioni adlı üyeden alıntı: mesajı görüntüle
    hocam 10 karaktere kadar denedim olmuyor
    Ben şimdi bunu denedim gayet düzgün çalışıyor. Siz de sorun ne anlamadım.
    $text  = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi vitae tristique nisl. Donec euismod metus sed luctus finibus. Aliquam ultricies magna sed porttitor venenatis.";
    
    
    echo mb_substr($text, 0, 50);
  • 16-01-2023, 00:26:20
    #5
    function kisalt($text, $length, $suffix = '...') {
    if(strlen($text) > $length) {
    $text = substr($text, 0, $length) . $suffix;
    }
    return $text;
    }



    kullanım

    kisalt("Yazı yazıyorum çok uzun ama ", 20);
  • 16-01-2023, 00:28:12
    #6
    PHP'de mb_substr() fonksiyonu, bir dizgenin belirli bir aralıkta alınmasını sağlar. Ancak, belirli bir karakter sayısına göre değil, belirli bir bayt sayısına göre keser. Bu nedenle, çok uzun başlıkların kesilmemesine neden olabilir.
    Alternatif olarak, PHP'de substr() fonksiyonu da kullanabilirsiniz. Bu fonksiyon, belirli bir karakter sayısına göre dizgenin bir kısmını alır. Örnek olarak:

    <?php echo substr($row['video_baslik'], 0, 100); ?>
    Bu şekilde, başlıklar 100 karakterden daha uzunsa, sadece ilk 100 karakter görüntülenir ve taşma problemi çözülür.
  • 16-01-2023, 00:30:07
    #7
    İlginize teşekkürler. Sorun çözüldü
  • 16-01-2023, 01:20:16
    #8
    teknoweb adlı üyeden alıntı: mesajı görüntüle
    PHP'de mb_substr() fonksiyonu, bir dizgenin belirli bir aralıkta alınmasını sağlar. Ancak, belirli bir karakter sayısına göre değil, belirli bir bayt sayısına göre keser. Bu nedenle, çok uzun başlıkların kesilmemesine neden olabilir.
    Alternatif olarak, PHP'de substr() fonksiyonu da kullanabilirsiniz. Bu fonksiyon, belirli bir karakter sayısına göre dizgenin bir kısmını alır. Örnek olarak:

    <?php echo substr($row['video_baslik'], 0, 100); ?>
    Bu şekilde, başlıklar 100 karakterden daha uzunsa, sadece ilk 100 karakter görüntülenir ve taşma problemi çözülür.
    Yanlış bilgi. Bayt sayısına göre kesme diye bir şey yok. Karakter setine göre işlem yapar. Bu yüzden Türkçe karakter setlerinde kullanılması daha doğru olur. Hatta aynısı strlen için de geçerlidir. Düz strlen Türkçe metinleri sayma konusunda bazen sorun çıkarabilir o yüzden mb_strlen kullanılması da daha doğrudur.
  • 16-01-2023, 01:27:34
    #9
    blap adlı üyeden alıntı: mesajı görüntüle
    Yanlış bilgi. Bayt sayısına göre kesme diye bir şey yok. Karakter setine göre işlem yapar. Bu yüzden Türkçe karakter setlerinde kullanılması daha doğru olur. Hatta aynısı strlen için de geçerlidir. Düz strlen Türkçe metinleri sayma konusunda bazen sorun çıkarabilir o yüzden mb_strlen kullanılması da daha doğrudur.
    https://www.php.net/manual/tr/function.mb-substr.php 😒