Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Znikając wartość w zmiennej
Forum PHP.pl > Forum > Przedszkole
lukash82
Witam,

Mam problem ze "znikającą" wartością w zmiennej. Chodzi o przycinanie stringa jeśli jest za długi.

  1.  
  2. $tekst = "qweasdzxc";
  3. $ile = 5; //do ilu znakow przyciac
  4.  
  5. if(strlen($tekst)>$ile){
  6. echo $przytnij = substr(strip_tags($tekst), 0, strpos($tekst,' ',$ile));
  7. echo " ...";
  8. }
  9. else echo $tekst;
  10.  


Sprawa jest prosta jak konstrukcja cepa. I dziwne, że w innych miejscach identyczny kod działa. Efekt działania tego kodu to tylko ten trzykropek. Co tu jest nie halo? Jeśli ktoś z Was może mnie naprowadzić na błąd to proszę o podpowiedź. Pozdrawiam, Ł.
viking
W $tekst nie ma żadnej spacji wyszukiwanej w strpos.
lukash82
Cześć,

Akurat w tym przykładowym tekście zapomniałem dodać spację więc stąd wynikał błąd. Ale naprowadziło mnie to na rozwiązanie...

Skrypt wykrzaczał mi się w przypadku gdy string miał przykładowo 206 znaków, a ja go chciałem dociąć do 200. Jednak w tym konkretnym przypadku ostatnie słowo miało 10 liter, a po słowie nie było już żadnej spacji, którą mógł mi wychwycić strpos. Wtedy zmienna traciła jakby zawartość i nic się nie pokazywało mi na stronie.

Tym oto sposobem straciłem 4h na szukanie byka w kodzie, którego nie było... Trzeba się napić... hehe;)

Mimo wszystko dzięki za naprowadzenie ~viking
viking
Weź jeszcze pod uwagę że badasz długość stringa bez kodowania multibyte mb_strlen.
Bardziej odporne może być np
  1. $string = 'asajkshdhfjsh dgfjhs dgfjhs dgjhf sjdhf gjshdg jhfgdjhfgdj';
  2. var_dump(preg_replace('/\s+?(\S+)?$/', '...', substr($string, 0, 40)));
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.