Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Skrócony opis wpisu na stronie.
NetBeans
post 27.10.2013, 22:15:32
Post #1





Grupa: Zarejestrowani
Postów: 56
Pomógł: 4
Dołączył: 18.01.2012

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


Cześć.

Nazwałem wątek może trochę niezrozumiale, ale już tłumaczę o co chodzi.

Otóż przykładowo posiadam na swojej stronie kilka newsów. Przy ich wyświetlaniu w jednej dużej liście chciałbym, aby skrócona wersja newsa (kilka początkowych zdań) pojawiała się pod tytułem wpisu.
I teraz moje pytanie: w jaki sposób Wy to rozwiązujecie? Trzymacie taką skróconą wersję w bazie danych, czy może generujecie sobie takową w locie bezpośrednio po stronie PHP, lub może jeszcze inaczej?

Temat mnie zastanowił, bo jeżeli miałoby się to dziać w locie, to w jakiś sposób trzeba je uciąć. Więc nasuwa się pytanie: jak odmierzyć tą część, którą trzeba uciąć? Przyjmijmy, że tekst zawsze musi się zmieścić w divie o takich samych rozmiarach. Do tego taka operacja byłaby troszkę niewydajna, prawda? W końcu wyjąć z bazy kilkadziesiąt (załóżmy 30 newsów/strona) bloków tekstu, każdy obciąć i wyświetlić...

Czekam na Wasze pomysły. smile.gif
Go to the top of the page
+Quote Post
sajegib
post 27.10.2013, 22:57:09
Post #2





Grupa: Zarejestrowani
Postów: 352
Pomógł: 59
Dołączył: 16.01.2013

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


No możesz albo w bazie trzymać krótką wersję, albo obciąć, zależy jak wygląda zawartość Twojej bazy smile.gif
Ja bym zrobił explode po spacji (policzyć słowa) lub po kropce (policzyć zdania) no i dla bezpieczeństwa substr gdyby ktoś wrzucił "monolityczny" tekst smile.gif
Go to the top of the page
+Quote Post
freemp3
post 28.10.2013, 08:33:33
Post #3





Grupa: Zarejestrowani
Postów: 467
Pomógł: 77
Dołączył: 6.09.2008
Skąd: Miechów / Kraków

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


To jest zależne od projektu. Czasami jest tworzona oddzielna kolumna zawierająca krótki opis, a czasami trzeba generować w locie.
W moim przypadku generowanie krótkiego tekstu w locie wygląda następująco:
1. Wycinasz maksymalną długość tekstu jaka może być wyświetlona funkcją mb_substr
2. Szukasz ostatniej spacji funkcją mb_strrpos
3. Ucinasz tekst do znalezionej ostatniej spacji (tak jak w pierwszym punkcie), dodajesz trzy kropki i masz w miare ładny tekst.


--------------------
Niemożliwym jest stworzenie czegokolwiek idiotoodpornego, ponieważ idioci są wyjątkowo pomysłowi.

https://www.aroch.pl
https://themeforest.net/user/aroch
https://www.astroblog.aroch.pl
https://www.4geeks.pl
Go to the top of the page
+Quote Post
franki01
post 28.10.2013, 17:32:48
Post #4





Grupa: Zarejestrowani
Postów: 508
Pomógł: 75
Dołączył: 2.11.2005
Skąd: Bydgoszcz

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


  1. $przyblizona_dlugosc_skroconego_tekstu = 100;
  2. $caly_tekst = "Ala ma kota";
  3. $skrocony_tekst = substr($caly_tekst, 0, strpos($caly_tekst, ' ', $przyblizona_dlugosc_skroconego_tekstu));
Go to the top of the page
+Quote Post
NetBeans
post 28.10.2013, 17:59:52
Post #5





Grupa: Zarejestrowani
Postów: 56
Pomógł: 4
Dołączył: 18.01.2012

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


Bardzo dziękuję za pomoc. Pozdrawiam!
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: 15.05.2024 - 12:20