Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][MySQL][PHP]pierwsze 100 znaków newsu na stronie głównej
Forum PHP.pl > Forum > Przedszkole
simi20
Witajcie
Mam pytanie do was przyjaciele jak macie rozwiązaną kwestię aktualności na stronach?
Ponieważ cały panel sobie napisałem wszystko działa prawidłowo ale... no właśnie to ale.
W panelu mam dodany edytor Wysiwyg Tinymce do elementu textarea gdzie wpisuje treści wiadomości przez co wpisy są w elementach
  1. <p>

No i teraz gdy np. wyświetlam ostatnich 5 newsów i pobieram dla nich początkowe powiedzmy 100 znaków (cały wpis ma powiedzmy 500znaków) to nie mam na końcu elementu zamykającego
  1. </p>

I teraz pytanie jak to rozwiązaćquestionmark.gif?czy dodać jeszcze jeden element textarea ktory będzie bez edytora Tinymce czyli wpis w nim nie będzie objęty elementami
  1. <p></p>
na początku gdzie będzie wpisywany tekst który będzie się wyświetlał na początkowej stronie czyli te 100 znaków??
czy może macie jakieś inne rozwiązanie?questionmark.gif np. sprawdzić czy na końcu jest tag zamykający
  1. </p>
i jeśli go nie ma to żeby go dopisać.
Z góry dziękuję za pomoc, pozdrawiam
erix
Ręcznie dzielę; masz w TinyMCE takie coś, jak pagebreak; wstawia w treść komentarz i nie trzeba się z tym męczyć. [;
Bartłomiej Skwara
Ja osobiście wyświetlając zajawki artykułów na głównej wyświetlam jest bez tagów html. Tylko ograniczenie znaków.
Dlaczego? Na przykład gdy w jednym artykule wyśrodkuję tekst, a w innym wyrównam do lewej czy prawej - niszczy to układ na "głównej".
Jeśli jednak chcesz zamykać otwarte tagi - podrzucam Ci rozwiązanie, jakie znalazłem w google:


  1. /** * close all open xhtml tags at the end of the string
  2.  
  3.  * * @param string $html
  4.  
  5.  * @return string
  6.  
  7.  * @author Milian <mail@mili.de>
  8.  
  9.  */function closetags($html) {
  10.  
  11. #put all opened tags into an array
  12.  
  13. preg_match_all('#<([a-z]+)(?: .*)?(?<![/|/ ])>#iU', $html, $result);
  14.  
  15. $openedtags = $result[1]; #put all closed tags into an array
  16.  
  17. preg_match_all('#</([a-z]+)>#iU', $html, $result);
  18.  
  19. $closedtags = $result[1];
  20.  
  21. $len_opened = count($openedtags);
  22.  
  23. # all tags are closed
  24.  
  25. if (count($closedtags) == $len_opened) {
  26.  
  27. return $html;
  28.  
  29. }
  30.  
  31. $openedtags = array_reverse($openedtags);
  32.  
  33. # close tags
  34.  
  35. for ($i=0; $i < $len_opened; $i++) {
  36.  
  37. if (!in_array($openedtags[$i], $closedtags)){
  38.  
  39. $html .= '</'.$openedtags[$i].'>';
  40.  
  41. } else {
  42.  
  43. unset($closedtags[array_search($openedtags[$i], $closedtags)]); }
  44.  
  45. } return $html;}
  46.  
  47.  
  48. var_dump("<p>juuhdiwdhd<b>effewff<u>efwef</u>"); // string(35) "<p>juuhdiwdhd<b>effewff<u>efwef</u>"
  49.  
  50. var_dump(closetags("<p>juuhdiwdhd<b>effewff<u>efwef</u>")); // string(43) "<p>juuhdiwdhd<b>effewff<u>efwef</u></b></p>"
simi20
Dziękuje za porady osobiście skorzystałem z funkcji strip_tags() i wszystko funkcjonuje prawidłowo.
Dziękuję, temat do zamknięcia.
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.