Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Obciecie tekstu po ludzku :)
Forum PHP.pl > Forum > Przedszkole
babajaro
Hejka wszystkim...


Mam pewien problem i nie wiem jak go rozwiązać...
Otoz robię sobie bazę sql i mam w niej pole tekstowe...

na stronie chciałbym umieścić najpierw skrót tego pola, a poxniej przycisk więcej i dopiero tam całość...

napisałem coś takiego:

  1. <?php
  2. substr(nl2br($query_data1[3]), 0, 200)
  3. ?>


i wszystko jest OK gdyby nie to, że ta funkcja oczywiście obcina końcówkę, z tymże nie "patrząc" na wyrazy. Więc jak w bardzo prosty dla laika sposób smile.gif można temu zapobiec?

Myślę, że trzeba by napisać jakąś funkcję, która po określonej jej liczbie znaków, szuka najbliższej spacji i tam ucina... ale jak to napisać?

Z góry wielkie dzięki za odpowiedź!
.dragonfly
To powinno pomoc:

  1. <?php
  2.  
  3. // funkcja skracaja dopelniajaca do pelnego wyrazu
  4.  
  5. function skroc($text, $liczba_znakow) 
  6. {
  7. if (strlen($text) > $liczba_znakow) 
  8. return substr($text, 0, strrpos(substr($text, 0, $liczba_znakow), &#092;" \")).' ...';
  9. else return $text;
  10. }
  11.  
  12. // uzycie
  13.  
  14. $sql = &#092;"SELECT left(text, 180) as text_krotki FROM tabela\";
  15. $query = mysql_query($sql) or die(mysql_error());
  16.  
  17. while($out = mysql_fetch_assoc($query))
  18. echo skroc($out['text_krotki'], 180).'<br>';
  19.  
  20. ?>
babajaro
Wielkie dzieki, skorzystalem z Twojej funkcji. Jesteś wielki! biggrin.gif
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.