Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zastąpienie fread()
Forum PHP.pl > Forum > PHP
flegmucha
Witam
Próbowałem napisać skrypt do pobierania aktualnych kursów walut z NBP.
Udało mi się to... jednak działa tylko na localhoscie... więc jest nieprzydatne...
Problemem jest funkcja fread() która pobiera chyba tylko 128 pierwszych znaków, a mi potrzeba znacznie więcej :/
I teraz nie wiem co mam z tym zrobić... Może ktoś z was ma jakiś pomysł?

Oto kod z którego korzystam (na localhoscie dziala):

  1. <?php 
  2. $fp = fsockopen(&#092;"www.nbp.pl\", 80, $errno, $errstr, 30); 
  3. if (!$fp) { 
  4.  echo &#092;"$errstr ($errno)<br />n\"; 
  5. } else { 
  6.  $out = &#092;"GET /Kursy/KursyA.html HTTP/1.1rn\"; 
  7.  $out .= &#092;"Host: www.nbp.plrn\"; 
  8.  $out .= &#092;"Connection: Closernrn\";  
  9.  fwrite($fp, $out); 
  10.  $t = fread($fp,12000); 
  11. preg_match_all(&#092;"/(.*)*/\", $t, $matches); 
  12. echo &#092;"<table width='300' border='0'>\"; 
  13. echo &#092;"<tr><td colspan='2'><h2>Średnie kursy walut</h2></td></tr>\"; 
  14. echo &#092;"<tr><td>\".strip_tags($matches[0][106]).\" (\".strip_tags($matches[0][108]).\")</td><td>\".strip_tags($matches[0][110]).\"</td></tr>\"; 
  15. echo &#092;"<tr><td>\".strip_tags($matches[0][116]).\" (\".strip_tags($matches[0][118]).\")</td><td>\".strip_tags($matches[0][120]).\"</td></tr>\"; 
  16. echo &#092;"<tr><td>\".strip_tags($matches[0][126]).\" (\".strip_tags($matches[0][128]).\")</td><td>\".strip_tags($matches[0][130]).\"</td></tr>\"; 
  17. echo &#092;"</table>\"; 
  18. fclose ($fp); 
  19. } 
  20. ?>
dr_bonzo
Odczytuj za pomoca fread(), tak dlugo az zwroci ci FALSE przy odczycie.
donpablo
A tak apropo to funkcja ta nie pobiera 128 zanków bo wtedy jej uzywanie nie miałoby sensu, a do tego to nie jedyne wyjście na odczyt pliku, np:
  1. <?php
  2.  
  3. if(!($file=@fopen(&#092;"plik.txt\",\"r\"))) {
  4. echo &#092;"Bł&plusmn;d otwarcia pliku\";
  5. }
  6. while(!@feof($file)) {
  7. $linia = @fgets($file,255);
  8. //i tu dalsza akcja np.:
  9. if(ereg(&#092;"^[a-z0-9]\",$linia)){
  10.  //analiza..............
  11. }
  12.  
  13. }
  14. ?>
flegmucha
Problem w tym, że mam zablokowany dostęp do plików zdalnych na serwerze... więc fopen() chyba odpada :/
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.