Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Problem z formatowaniem wierszy
Forum PHP.pl > Forum > Przedszkole
nitro18
Witam,

Mam mały problem. Mam plik, a w nim taką treść: plik

oraz mój początkowy kod:

  1. <?php
  2. $fo=fopen("tab3.pl.htm.txt","r");
  3. $fr=fread($fo,filesize("tab3.pl.htm"));
  4.  
  5.  
  6. $fr=strip_tags($fr);
  7. $poz=strpos($fr,"Data");
  8. $fr=substr($fr,$poz+15);
  9. $fr=trim($fr);
  10. $fr=str_replace("&nbsp","",$fr);
  11. $dl=strlen($fr);
  12. $s=strpos($fr,"parent.document && parent.document.getElementById");
  13. $tnij=$dl-$s;
  14. $fr=substr($fr,0,-$tnij-4);
  15.  
  16. $sfi=explode("r\n",$fr);
  17.  
  18.  
  19. for($i=0;$i<count($sfi);$i++)
  20. {
  21.  
  22. if(!empty($sfi[$i]))
  23. {
  24. $sfi1[]=$sfi[$i];
  25. }
  26. }
  27.  
  28.  
  29. for($i=0;$i<count($sfi1);$i++)
  30. {
  31. $t=trim($sfi1[$i]);
  32.  
  33. $sp=0;
  34. $w=0;
  35. $m=0;
  36. for($z=0;$z<strlen($t);$z++)
  37. {
  38. if($t[$z]==" ")$sp++;
  39. if(ereg("[A-Z]{}",$t[$z]))$w++;
  40. if($t[$z]=="-")$m++;
  41. }
  42. if(($i>0)&&($m>1))echo '<br>';
  43. echo $sfi1[$i].' ';
  44.  
  45.  
  46.  
  47.  
  48. }
  49. ?>


który po wykonaniu pokazuje:
Kod
UniDolar Obligacje 87,94 3,73; 22,17 39,48 47,95 34,46 2,00 8 500 1.70
08-10-24 DWS Polska SFIO Euroobligacji 1415,67 2,51; 9,12 15,19 22,50 17,94 1,50 6 100 1.24
08-10-24 Allianz Walutowy 99,54 3,66; 6,23 19,10 25,00 17,62 1,00 7 200 0.56
08-10-22 UniWIBID SFIO 1316,92 0,02; 5,93 3,18 1,61 0,52 1,00 444 160000 0.48
08-10-24 PKO/CREDIT SUISSE Obligacji Długoterminowych FIO 113,37 -1,52 5,84 -1,18 -3,14 -6,45 2,10 117 100 0.94

...


Proszę o pomoc aby pokazywał mi w postaci:
Kod
UniDolar Obligacje 87,94 3,73; 22,17 39,48 47,95 34,46 2,00 8 500 1.70 08-10-24
DWS Polska SFIO Euroobligacji 1415,67 2,51; 9,12 15,19 22,50 17,94 1,50 6 100 1.24
08-10-24 Allianz Walutowy 99,54 3,66; 6,23 19,10 25,00 17,62 1,00 7 200 0.56 08-10-22
UniWIBID SFIO 1316,92 0,02; 5,93 3,18 1,61 0,52 1,00 444 160000 0.48 08-10-24
PKO/CREDIT SUISSE Obligacji Długoterminowych FIO 113,37 -1,52 5,84 -1,18 -3,14 -6,45 2,10 117 100 0.94
...


Można spotkać problem taki:

Kod
08-10-24 HSBC GIF Global Equity;;;;;;; 2,00 b/d; 3400 b/d;; HSBC GIF European Equity High Dividend;;;;;;; 2,00 b/d; 4000 b/d;;


że oba fundusze się "sklejają".


Z góry dziękuję za pomoc.
ayeo
Witaj!

Przyznam się, że tylko spojrzałem "na szybko", ale strzelam, że błąd jest w tej linijce:
  1. <?php
  2. for($i=0;$i<count($sfi1);$i++)
  3. ?>


Powinno być:
  1. <?php
  2. for($i=0;$i<=count($sfi1);$i++)
  3. ?>


Ta pętla występuje chyba więcej niż raz. Przypominam, że w sumie to strzelam winksmiley.jpg

Pozdrawiam!
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.