Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Echo oraz minimalna liczba znaków
NorQ
post 27.06.2012, 09:26:07
Post #1





Grupa: Zarejestrowani
Postów: 91
Pomógł: 0
Dołączył: 15.07.2011

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


Witam, pracuję nad systemem newsów który już prawie skończyłem. I mam jeden problem.

Jak do echo

  1. echo '<i>'.stripslashes($row['tresc']).'</i>';


dodać ograniczoną liczbę znaków, po której przekroczeniu się pojawia tylko '...' ?

Np. 9 znaków

LoremIpsu...

Proszę o przykład z moim kodem.


--------------------
HTML, CSS, JS, PHP i inne nie idą w las...
Powoli się uczę co i jak ;]
Go to the top of the page
+Quote Post
phpion
post 27.06.2012, 09:27:53
Post #2





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




mb_strlen + mb_substr. Pierwszą sprawdzasz czy ciąg jest dłuższy niż $max, jeśli tak to wycinasz z niego $max znaków, dostawiasz kropeczki i tyle.
Go to the top of the page
+Quote Post
NorQ
post 27.06.2012, 09:30:33
Post #3





Grupa: Zarejestrowani
Postów: 91
Pomógł: 0
Dołączył: 15.07.2011

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


Mogę prosić o przykład ? Bo jest to dla mnie nowa rzecz a lepiej rozumuję na przykładach...


--------------------
HTML, CSS, JS, PHP i inne nie idą w las...
Powoli się uczę co i jak ;]
Go to the top of the page
+Quote Post
!*!
post 27.06.2012, 09:35:49
Post #4





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Przykład masz w manualu. dodajesz do niego tylko "..." na końcu.


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
NorQ
post 27.06.2012, 09:41:12
Post #5





Grupa: Zarejestrowani
Postów: 91
Pomógł: 0
Dołączył: 15.07.2011

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


Znalazłem w sieci kod.

  1. <?
  2. $row['text'] = '1251361614761474714742171474741724717';
  3. $limit['limit'] = 30; // dopuszczalna ilosc liter
  4.  
  5. $row['text'] = substr ($row['text'], 0, $limit['limit']); // obcinanie
  6.  
  7. echo $row['text'];
  8. echo '...';
  9. ?>


Tylko co zmienić żeby nie wyświetlało '...' jeżeli ograniczenie liter nie zostanie przekroczone ?


--------------------
HTML, CSS, JS, PHP i inne nie idą w las...
Powoli się uczę co i jak ;]
Go to the top of the page
+Quote Post
!*!
post 27.06.2012, 09:43:15
Post #6





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Użyj IF. Jesteś prawie rok na forum i nie masz żadnej wiedzy PHP? Przeczytaj jakiś kurs.


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
Adi32
post 27.06.2012, 09:43:19
Post #7





Grupa: Zarejestrowani
Postów: 348
Pomógł: 26
Dołączył: 8.10.2008
Skąd: Lublin

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


  1. if (strlen($text) > $limit) {
  2. // obcinanie i dodawanie kropek
  3. }


Ale to rozwiązanie jest dość stare. Teraz robi sie do tego funkcję to raz a dwa nie powinno się ucinać zdania w połowie słowa.


--------------------
Wolałem języki z rodziny C ale poszedłem na łatwizne...
Go to the top of the page
+Quote Post
!*!
post 27.06.2012, 09:50:31
Post #8





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Adi32 - mb_strlen jak już wink.gif Liczy poprawnie, strlen ąśćó policzy jako 8 znaków.


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
NorQ
post 27.06.2012, 09:52:32
Post #9





Grupa: Zarejestrowani
Postów: 91
Pomógł: 0
Dołączył: 15.07.2011

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


Proszę o przykład połączenia IF z kodem bo sam nie potrafię połączyć...


--------------------
HTML, CSS, JS, PHP i inne nie idą w las...
Powoli się uczę co i jak ;]
Go to the top of the page
+Quote Post
Adi32
post 27.06.2012, 09:53:59
Post #10





Grupa: Zarejestrowani
Postów: 348
Pomógł: 26
Dołączył: 8.10.2008
Skąd: Lublin

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


Cytat(!*! @ 27.06.2012, 10:50:31 ) *
Adi32 - mb_strlen jak już ;) Liczy poprawnie, strlen ąśćó policzy jako 8 znaków.

No fakt, wziąłem i się nie skupiłem :/

@NorQ
Jak nie będziesz próbował sam to się nie nauczysz. Sprawa jest na prawdę prosta.

Ten post edytował Adi32 27.06.2012, 09:54:46


--------------------
Wolałem języki z rodziny C ale poszedłem na łatwizne...
Go to the top of the page
+Quote Post
!*!
post 27.06.2012, 09:54:04
Post #11





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Cytat(NorQ @ 27.06.2012, 10:52:32 ) *
Proszę o przykład połączenia IF z kodem bo sam nie potrafię połączyć...


Proszę


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
NorQ
post 27.06.2012, 09:59:02
Post #12





Grupa: Zarejestrowani
Postów: 91
Pomógł: 0
Dołączył: 15.07.2011

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


  1. <?php
  2. $row['text'] = '1251361614761474714742171474741724717';
  3. $limit['limit'] = 30; // dopuszczalna ilosc liter
  4. if (strlen($text) > $limit) {
  5. {
  6. $row['text'] = substr ($row['text'], 0, $limit['limit']); // obcinanie
  7. echo $row['text'];
  8. echo '...';
  9. }
  10. else
  11. {
  12. echo $row['text'];
  13. }
  14. ?>


Co w tym robię źle?


--------------------
HTML, CSS, JS, PHP i inne nie idą w las...
Powoli się uczę co i jak ;]
Go to the top of the page
+Quote Post
!*!
post 27.06.2012, 10:00:55
Post #13





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Masz o jedną klamrę{ za dużo w 5 linijce. Czemu Ty to zapisujesz w formie tablic?

Ten post edytował !*! 27.06.2012, 10:01:51


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
NorQ
post 27.06.2012, 10:03:52
Post #14





Grupa: Zarejestrowani
Postów: 91
Pomógł: 0
Dołączył: 15.07.2011

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


no tak... jak mogłem tego nie zauważyć... -.-

dodatkowo, pomyliłem kolejność w if.

Teraz mi się udało:
  1. <?php
  2. $row['text'] = '1251361614761474714742171474741724717';
  3. $limit['limit'] = 10; // dopuszczalna ilosc liter
  4. if (strlen($text) > $limit) {
  5. echo $row['text'];
  6. }
  7. else
  8. {
  9. $row['text'] = substr ($row['text'], 0, $limit['limit']); // obcinanie
  10. echo $row['text'];
  11. echo '...';
  12. }
  13. ?>


Dziękuję wam za pomoc. wink.gif


--------------------
HTML, CSS, JS, PHP i inne nie idą w las...
Powoli się uczę co i jak ;]
Go to the top of the page
+Quote Post
Adi32
post 27.06.2012, 10:13:05
Post #15





Grupa: Zarejestrowani
Postów: 348
Pomógł: 26
Dołączył: 8.10.2008
Skąd: Lublin

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


Twój kod wciąż nie będzie działać...

  1. $text = '1251361614761474714742171474741724717';
  2. $limit = 10; // dopuszczalna ilosc liter
  3. if (mb_strlen($text) > $limit) {
  4. $text = substr ($text, 0, $limit).'...'; // obcinanie
  5. }
  6. echo $text;


Ten post edytował Adi32 27.06.2012, 10:18:51


--------------------
Wolałem języki z rodziny C ale poszedłem na łatwizne...
Go to the top of the page
+Quote Post
NorQ
post 27.06.2012, 10:18:17
Post #16





Grupa: Zarejestrowani
Postów: 91
Pomógł: 0
Dołączył: 15.07.2011

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


Mi działa, ale skoro przedstawiasz lepszą wersję to nadpiszę ją...


--------------------
HTML, CSS, JS, PHP i inne nie idą w las...
Powoli się uczę co i jak ;]
Go to the top of the page
+Quote Post
!*!
post 27.06.2012, 10:18:59
Post #17





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Adi32 niby dlaczego nie? Zadziała dla liczb. Ale nie dla tekstu ze znakami diakrytycznymi, trzeba wpisać kodowanie jako 2 parametr.

Ten post edytował !*! 27.06.2012, 10:19:42


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
Adi32
post 27.06.2012, 10:19:49
Post #18





Grupa: Zarejestrowani
Postów: 348
Pomógł: 26
Dołączył: 8.10.2008
Skąd: Lublin

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


Cytat(!*! @ 27.06.2012, 11:18:59 ) *
Adi32 niby dlaczego nie?



Chyba żartujesz...
Przyjrzyj się:

  1. $row['text'] = '1251361614761474714742171474741724717';
  2. $limit['limit'] = 10; // dopuszczalna ilosc liter
  3. if (strlen($text) > $limit) {
  4. echo $row['text'];
  5. }


Strlen() operuje na innych zmiennych...
Edit, to faktycznie może działać jak na serwerze jest włączone przertarzanie zmiennych $var[nvar] na $nvar... Ale i tak nie powinno się tego stosować.

Ten post edytował Adi32 27.06.2012, 10:21:32


--------------------
Wolałem języki z rodziny C ale poszedłem na łatwizne...
Go to the top of the page
+Quote Post
!*!
post 27.06.2012, 10:21:09
Post #19





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Cytat
Chyba żartujesz...
Przyjrzyj się:


Boś źle napisał wcześniej wink.gif fakt, ten nie będzie, ale skoro autorowi działa, więc nie ma to znaczenia.


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 18.07.2025 - 13:50