Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php]Problem z dzieleniem teksu na czesci
Matiash
post 17.10.2007, 14:24:47
Post #1





Grupa: Zarejestrowani
Postów: 103
Pomógł: 0
Dołączył: 7.04.2007

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


Chcialem wiekszy teks podzielic sobie na mniejsze czesci zeby potem wyswietlac go na stronie w odpowiednim ukladzie. Doszedlem do wniosku ze jedynym rozsadnym rozwiazaniem jest dzielenie go za kazdym razem po kropce czyli po zakonczonym zdaniu bo inaczej wyglada to beznadziejnie.

I tak teskt dziele na 11 czesci przy czym 6 z nich jest wieksza (porcja=3700) druga czesc jest mniejsza (porcjamini=450). Tekst poczatkowy czyli $tresc chce umiescic o tablicy $nowy.

  1. <?php
  2. $porcja=3700;
  3. $porcjamini=450;
  4. $znacznik=0;
  5.  
  6.  
  7. for($x=0;$x<11;$x++)
  8. {if($x==|| $x==|| $x==|| $x==|| $x==8)
  9. {for($k=0;;$k++)
  10. {
  11. $czesc=substr($tresc,$znacznik+$porcja+$k,1);
  12. if($czesc==".") {$pkt=$k+1; break;}
  13. }
  14. $nowy[$x]=substr($tresc,$znacznik,$porcja+$pkt); 
  15. $znacznik=$znacznik+$porcja+$pkt;
  16. }
  17. if($x==|| $x==|| $x==|| $x==|| $x==9)
  18. {for($k=0;;$k++)
  19. {
  20. $czesc=substr($tresc,$znacznik+$porcjamini+$k,1);
  21. if($czesc==".") {$pkt=$k+1; break;}
  22. }
  23. $nowy[$x]=substr($tresc,$znacznik,$porcjamini+$pkt); 
  24. $znacznik=$znacznik+$porcjamini+$pkt;
  25. }
  26. if($x==10)
  27. $nowy[$x]=substr($tresc,$znacznik,$porcja);
  28. }
  29. ?>


Wszystko dziala dobrze az do momentu gdy trafie na jakas niefortunna wartosc $porcja i dostaje nastepujacy blad:
"Fatal error: Maximum execution time of 30 seconds exceeded in..."

Gdzie popelniam blad i czy to nie jest po prostu spowodowane ograniczeniem serwera bo funkcja szuka kropki tak dlugo az znajdzie wiec dzialac powinno zawsze?!
Czy jest jakies lepsze rozwiazanie tego problemu? Moze gotowa funkcja?


--------------------
www.picture-globe.com
Go to the top of the page
+Quote Post
joebezucha
post 17.10.2007, 14:48:48
Post #2





Grupa: Zarejestrowani
Postów: 43
Pomógł: 1
Dołączył: 23.05.2007
Skąd: Gliwice

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


wysypuje sie bo w przypadku gdy w stringu nie będzie kropki i spacji ". " to nie wyjdzie z pętli instrukcją break. Jesli stosujesz nieskonczoną pętle for to musisz zrobic warunek wyjscia , który w kazdej sytuacji zadziała.
Go to the top of the page
+Quote Post
Matiash
post 17.10.2007, 14:57:52
Post #3





Grupa: Zarejestrowani
Postów: 103
Pomógł: 0
Dołączył: 7.04.2007

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


Tak tylko ze mi sie wysypuje w przypadku gdy jest kropka. Ale wpadlem na inny pomysl zobcze czy bedzie dzialac...


Edit: Juz nieaktualne smile.gif Inny pomysl okazal sie byc calkiem dobry...

Ten post edytował Matiash 17.10.2007, 15:58:32


--------------------
www.picture-globe.com
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: 12.06.2025 - 23:43