Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Skracanie tekstu
Forum PHP.pl > Forum > Przedszkole
coomler
Witam,

  1. substr($wiersze['tresc'], 0, strpos($wiersze['tresc'], ',', 500))


w ten sposób skracam tekst na stronie głównej z newsami, lecz co zrobić, gdy tekst będzie krótszy od 500 znaków? Zastosować instrukcję warunkową? Proszę o radę, problem w miarę możliwości postaram sobie rozwiązać.
wookieb
Tak styknie if.
Mam nadzieję, że wiesz aby poprawnie policzyć ilość znaków w ciągu używamy mb_strlen
coomler
Dzięki, pokombinuje teraz smile.gif a co do mb_strlen to załem chyba inną wersję(strlen).

Edit: Spróbowałem, oto wynik

  1. for($i = 0; $i < $liczba_wierszy; $i++)
  2. {
  3.  
  4.  
  5. $wiersze = mysql_fetch_array($rezultat);
  6.  
  7. $dlugosc = strlen($wiersze['tresc']);
  8.  
  9. if($dlugosc > 300)
  10. {
  11. $x = 300;
  12. }
  13.  
  14. else
  15. {
  16. $x = $dlugosc;
  17. }
  18.  
  19. echo '<div class="tresc">' . substr($wiersze['tresc'], 0, strpos($wiersze['tresc'], ',', $x)) . '... <a href="index.php?newsy=otworz&id=' . $wiersze['id'] . '"> Czytaj Więcej</a></div>';
  20. }


Gdy treść newsa jest dłuższa od 300 wszystko jest w porządku, gdy nie to wyświetla tylko tę część "... Czytaj Więcej". Teraz przynajmniej mi się skrypt wykonuje nie tak jak wcześniej smile.gif Gdzie mogę mieć błąd, pewnie w sekcji else?
wookieb
  1.  
  2. $dlugosc = mb_strlen($wiersze['tresc']);
  3. $tresc = $wiersze['tresc'];
  4. if($dlugosc > 300)
  5. {
  6. $x = 300;
  7. $tresc = mb_substr($wiersze['tresc'], 0, mb_strpos($wiersze['tresc'], ',', $x)).' ...';
  8. }
  9.  
  10. echo '<div class="tresc">' . $tresc . '<a href="index.php?newsy=otworz&id=' . $wiersze['id'] . '"> Czytaj Wi?cej</a></div>';
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.