Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]function skroc($tekst, $il_znakow) - kto pomoże zmodyfikować?
Forum PHP.pl > Forum > Przedszkole
ewaslawek5
Witam
Posiadam funkcję o nazwie skroc, jej zadanie to skrócić długi tekst do wybranej ilości wyrazów i wstawienie na końcu '...' trzech kropek, funkcja działa prawidłowo skraca długi tekst, chciałbym ją zmodyfikować w taki sposób, że jeśli w tekście przeznaczonym do skrócenia znajdował się bardzo długi wyraz np. 'wwwwwwwiiiiiiiiiiiiiiiiiiitttttttttttt
tttttttttaaaaaaaaaaaaaaaaaaaammmmmmmmmmmmm' chciałbym abym mógł mieć możliwość w takich długich wyrazach określać ilość wyświetlania liter w poszczególnych wyrazach...

Na pewno przytoczona prze zemnie funkcja przyda się komuś. Liczę ka Waszą pomoc!

  1. function skroc($tekst, $il_znakow)
  2. {
  3.  
  4. $tekst = eregi_replace("<br />","<br>",$tekst);
  5. $tekst = explode(" ",$tekst);
  6. for ($i=0; $i < $il_znakow; $i++) {
  7. if (eregi("^\[([0-9]+):(p|l|s)(\])$",$tekst[$i])) {
  8. $tekst[$i] = "";
  9. }
  10. $wynik = $wynik.$tekst[$i]." ";
  11. }
  12. if ($tekst[$i+1]) $wynik = $wynik."...";
  13. return $wynik;
  14.  
  15. }
wookieb
Przenoszę do żłobka.
ewaslawek5
I nic.......... nie widać i nie słychać sad.gif ....ech
Daiquiri
Nie podbijaj tematu, napisałeś go raptem 50 minut temu. Napisz w czym masz konkretnie problem. Przecież żeby kontrolować długość ostatniego wyrazu wystarczy tak na dobrą sprawę skorzystać z substr i strlen.

@down:
A potrzebujący = Ty smile.gif.
ewaslawek5
Dobra wysiliłem się i sam znalazłem odpowiedź.
Poniżej gotowe rozwiązanie:
  1. function skroc($tekst, $il_wyrazow, $il_znakow_w_slowie)
  2. {
  3.  
  4. $tekst = eregi_replace("<br />","<br>",$tekst);
  5. $tekst = explode(" ",$tekst);
  6. for ($i=0; $i < $il_wyrazow; $i++) {
  7. $wyraz = $tekst[$i];
  8. if (strlen($wyraz) > $il_znakow_w_slowie){$wyraz = substr($wyraz, 0,$il_znakow_w_slowie); $wynik = $wynik.$wyraz."...";}else{$wynik = $wynik.$wyraz." ";}
  9.  
  10. }
  11. if ($tekst[$i+1]) $wynik = $wynik."...";
  12. return $wynik;
  13.  
  14. }

Niżej sposób korzystania:
  1. $tytul = skroc("$tytul", 6, 15);


PS
Nie podbijam tematu, tylko chciałem pomóc potrzebującemu....
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.