Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Dzielnie dlugiego tekstu na podstrony
Forum PHP.pl > Forum > PHP
kalu111
Chcialem napisac skrypt, dokladnie klase, ktora dzielilaby mi podany w parametrze tekst na podstrony, jesli liczba slow bedzie wieksza od przyjetej na jednej podstronie.

Wszystko ma sie odbywac dynamicznie, czyli przekazujemy tekst w calosci (original) i dzilimy go na podstrony i wyswietlamy na stronie odpowiednia czesc.

Problem w tym, ze za bardzo nie wiem jak poradzic sobie z tagami, ktore beda zawarte w tekscie.
Przy zwyklym obcinaniu tekst bez znacznikow nie bylo by problemu, ale gdy utniemy tekst zaraz po np. <p>sss
- to tag zamykajacy </p> pojawi sie dopiero na nastepnej podstronie.

I drugi problem to taki, ze istnieje mozliwosc grupowania tagow np. <filedset><form> ... i tu ucinamy tekst.
Teraz trza wiedziec, ile tagow zamykajacych powinnismy szukac.

Hmmm?
matlas
a ten tekst ma byc html czy xhtml ?
kalu111
zamierzam i to i to zrobic...skyrpt powinien byc elastyczny
matlas
jak xhtml to mozesz parsowac czy jest dokumentem XML jak nie przesuwac o iles tam znakow ciety teksty az bedzie http://plhttp://pl2.php.net/xml

ja tak do newsow skracania sobie zrobilem biggrin.gif
kalu111
Hmm, widze, ze chyba ciezka sprawa bedzie z tym, no ale cos pokombinuje i dam znac...
matlas
czemu ciezka?questionmark.gif

np tak jakos:

parsujesz dokument:

  1. <?php
  2. function spr_czy_xml($tekst)
  3. {
  4. $parser_xml = xml_parser_create() ;
  5. $dane = '<div> '. $tekst . '</div>';
  6.  
  7. $poprawny_xml = xml_parse ($parser_xml , utf8_encode($dane));
  8. xml_parser_free($parser_xml); 
  9.  
  10. return $poprawny_xml;
  11. }
  12. ?>


i tak do tego zwiekszasz o np 1 znak jesli nie jest xml (ma nie zamkniete znaczniki np)

  1. <?php
  2. $znaki_news=200;
  3.  
  4.  do
  5.  {
  6. $news_kawalek = substr($tresc,0, $znaki_news);
  7. $znaki_news +=1;  
  8.  }while(!spr_czy_xml($news_kawalek));
  9. ?>
Dandelion
http://forum.php.pl/index.php?showtopic=35498&st=0 ta sama zasada
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.