Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> skracanie ciagu znakow
attimo
post
Post #1





Grupa: Zarejestrowani
Postów: 115
Pomógł: 6
Dołączył: 23.01.2010

Ostrzeżenie: (0%)
-----


Witam,

Chciałem zrobić by jakiś tekst który przekracza określoną liczbe znaków został skrócony najprościej jest użyć substr, ale to dosyć nieładnie wygląda jak jakiś wyraz jest ucięty. Dlatego pokombinowałem i chciałem zrobić tak aby po przekroczeniu danej ilości znakow wyraz byl dokonczony po czym zostalyby napisane 3 kropki. wyglada to tak:
  1. $a = chr(32); // znak spacji
  2. $length = strlen($rekord['opis']); // przypisanie dlugsci znakow
  3. $pre = substr($rekord['opis'], 25); // wyciecie tego co jest ponad limit
  4. $b = strpos($pre, $a); // zwrocenie pozycji wystapienia pierwszej spacji od 25 znaku
  5. $pre2 = substr($pre,25,$b); // wyciecie kawalka od 25 znaku do spacji
  6. $pre3 = substr($rekord['opis'],0,25) . $pre2; // podstawowe 25 znakow plus nadwyzka do spacji
  7. if($length > 25) {
  8. echo $pre3 . "...";
  9. }
  10. else {
  11. echo substr($rekord['opis'],0,25);
  12. }

Efekt tego jest taki, że działa tak jak bym to wyciął za pomocą funkcji substr. Pytanie dlaczego ?
Go to the top of the page
+Quote Post
Crozin
post
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Prostsza wersja:
  1. $limit = 200;
  2.  
  3. if (strlen($text) > $limit) {
  4. $text = substr($text, 0, strpos($text, ' ', $limit)) . '...';
  5. }
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 25.08.2025 - 06:43