Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> skrót rekordu pobranego z bazy
Muphet
post 23.04.2012, 16:44:46
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 8.12.2007

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


Witam.

Tworzę system CMS pod stronę i zatrzymałem się w momencie skrócenia wyciągniętego z bazy danych rekordu do wyznaczonej wartości znaków. Chodzi o to, by tzw. 'skrócony opis' wyświetlał tylko oznaczoną ilość znaków i urywał resztę dodając np. wielokropek.

Korzystam z pętli do wyświetlania newsów na stronie głównej. Zmienna $text to treść artykułu.
  1. $view_text = '';
  2. if (strlen($text) > 50) {
  3. $view_text = substr($text, 0, 50);
  4. $temp = strrpos($view_text, ' ');
  5. $view_text = substr($text, 0, $temp) . '...';
  6. }else{
  7. $view_text = $text;
  8. }

Stworzyłem funkcję ograniczającą pobrany rekord do 50 znaków, lecz bez żadnych błędów rekord nie zostaje skrócony. W czym tkwi problem?

----
/wybaczcie - temat do usunięcia. Sam już doszedłem do swojego błędu.

Ten post edytował Muphet 23.04.2012, 16:48:45
Go to the top of the page
+Quote Post
piotr.pasich
post 23.04.2012, 19:45:35
Post #2





Grupa: Zarejestrowani
Postów: 27
Pomógł: 4
Dołączył: 27.01.2012
Skąd: Gliwice

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


Osobiście preferuję rozbicie na słowa i przelecenie przez nie foreachem (po to jest )

  1. function cutString($string, $lenght=200)
  2. {
  3. $stringArray = explode (' ',$string);
  4. $outputString = '';
  5.  
  6. if ( $length <= strlen($string)){
  7. return substr($string,0,$length).'...';
  8. }
  9.  
  10. foreach ($stringArray AS $word){
  11. if ( $length > strlen($outputString)+strlen($word)){
  12. $outputString .= ' ' . $word;
  13. }
  14. return substr($outputString,1).'...';
  15. }
  16.  
  17. }



Dorzuciłbym jeszcze obsługę znaków niealfanumerycznych np. kropki (.) lub przecinka (,), żeby string nie kończył się:

  1. Lorem ipsum dolor sit apet,...


--------------------
Zapraszam do głosowania na agendę PHPCon Poland 2013 http://www.phpcon.pl/2013/pl/agenda.

---
Piotr Pasich
piotr.pasich@xsolve.pl
www.xsolve.pl
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: 29.06.2025 - 02:45