Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Modyfikacja skryptu
Forum PHP.pl > Forum > PHP
rafff
Witam!
Wiem, ze temat byl poruszany 1000 razy, ale licze na Wasza znajomosc php. Otoz mam skrypt pobierajacy wartosc poszczegolnych walut i dziala on bez zarzutu. Jednak pobiera wartosc wszytskich walut (kupna i sprzedazy) a mi zalezy glownie na wartosci sprzedazy USD. Jak go skorygowac tak, by pokazywal glownie dolary? Oto kod:
  1. <?
  2. # pliki
  3.  $f_old  = "./tmp/old.tmp";
  4.  $f_today = "./tmp/today.tmp";
  5.  $f_date = "./tmp/date.tmp";
  6.  #zmienne
  7.  $v_date = date("Y-M-d");
  8.  $download = no;
  9.  #pobierz date z pliku
  10.  $handle = fopen($f_date, "r");
  11.  flock($handle,1);
  12.  $f_dateread = fgets($handle);
  13.  flock($handle,3);
  14.  fclose($handle);
  15.  # sprawdz czy mamy stary plik
  16. if($v_date != $f_dateread)
  17.  {
  18.  $handle = fopen($f_date, "w");
  19.  flock($handle,2);
  20.  fwrite($handle, $v_date);
  21.  flock($handle,3);
  22.  fclose($handle);
  23.  $download = ok;
  24.  }
  25.  # funkcja pobierajaca stronę
  26. function httpGet ( $file_name ) {
  27. $file = fopen($file_name, "r");
  28. while (!feof ($file)) { $buffer = fgets($file, 4096);
  29. $out .= $buffer;
  30. if ( $buffer == "" ) { fclose($file); return $out; }
  31. } fclose ($file);
  32. return $out;
  33. }
  34.  # pobieranie
  35.  if($download == ok)
  36. {
  37.  $t = @httpGet("http://nbp.pl/kursy/kursyc.html");
  38.  # zapisz dane do OLD
  39.  $new_old = @httpGet($f_today);
  40.  $handle = fopen($f_old, "w");
  41.  flock($handle,2);
  42.  fwrite($handle, $new_old);
  43.  flock($handle,3);
  44.  fclose($handle);
  45.  #zapisz dane do TODAY
  46.  $handle = fopen($f_today, "w");
  47.  flock($handle,2);
  48.  fwrite($handle, $t);
  49.  flock($handle,3);
  50.  fclose($handle);
  51. }
  52. else 
  53. {
  54.  $t = @httpGet($f_today);
  55.  $o = @httpGet($f_old);
  56. }
  57. $t = strip_tags($t);
  58.  $o = strip_tags($o);
  59.  @preg_match_all("/(.*)*/", $t, $matches_t);
  60.  @preg_match_all("/(.*)*/", $o, $matches_o);
  61.  # wy?wietlanie
  62. $offset = 6;
  63. echo "<table width=170 border=0 cellspacing=0 cellpadding=0>\n";
  64. echo "<tr>\n";
  65. echo "<td class=head>Waluta</td>";
  66. echo "<td class=head>Kupno</td>";
  67. echo "<td class=head>Sprzedaż</td>";
  68. echo "</tr>\n";
  69.  for($i=8;$i<=24;$i++)
  70. {
  71. $a = $i . $offset;
  72. echo "<tr>\n";
  73. echo "<td>".$matches_t[0][$a]."</td>";
  74. #kupno
  75. echo "<td";
  76. if(substr($matches_t[0][$a+2],0,4) == substr($matches_o[0][$a+2],0,4)) echo "";
  77. else if(substr($matches_t[0][$a+2],0,4) > substr($matches_o[0][$a+2],0,4)) echo " class=wzrost";
  78. else echo " class=spadek";
  79. echo ">".substr($matches_t[0][$a+2],0,4)."</td>";
  80. #sprzedaz
  81. echo "<td";
  82. if(substr($matches_t[0][$a+4],0,4) == substr($matches_o[0][$a+4],0,4)) echo "";
  83. else if(substr($matches_t[0][$a+4],0,4) > substr($matches_o[0][$a+4],0,4)) echo " class=wzrost";
  84. else echo " class=spadek";
  85. echo ">".substr($matches_t[0][$a+4],0,4)."</td>\n";
  86. echo "</tr>\n";
  87. $offset+=2; if($offset == 10) { $i++; $offset = 0; }
  88. }
  89.  echo "</table>";
  90. ?>

Z gory dziekuje
Inzabi
Wrzuć kod w [php][/php]
phoenix7
Witam

Najszybszy sposób to będzie wrzucenie warunku if tak jak poniżej (jeśli o to ci chodzi):

  1. <?php
  2. for($i=8;$i<=24;$i++)
  3. {
  4. $a = $i . $offset;
  5. if ($matches_t[0][$a] == "#oznaczenie_waluty#") { // oznaczenie waluty np. usd (w zależności jak masz w plikach)
  6. echo "<tr>\n";
  7. echo "<td>".$matches_t[0][$a]."</td>";
  8. #kupno
  9. #...
  10. #sprzedaz
  11. #...
  12. echo "</tr>\n";
  13. }
  14. $offset+=2; if($offset == 10) { $i++; $offset = 0; }
  15. }
  16. ?>


Ogólnie może to zadziałać, ale ciężko stwierdzić jeśli nie znam zawartości plików z których to wyciągasz.

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