Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Jak wyświetlic kilka lini za pomocą fgets ?
kiler129
post
Post #1





Grupa: Zarejestrowani
Postów: 566
Pomógł: 35
Dołączył: 21.06.2006

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


Mam sobie taki skrypt:

  1. <?php 
  2. $serwer="127.0.0.1"; 
  3. $sock = fsockopen ($serwer, 110); 
  4.  
  5.  $x=fgets($sock); 
  6.  echo "<br>$x<br>"; 
  7.  
  8. fputs($sock,"USER testrn");
  9.  
  10.  
  11. fputs($sock,"PASS testrn");
  12.  $x=fgets($sock); 
  13.  echo "<br>$x<br>";
  14.  
  15. fputs($sock,"LISTrn");
  16.  $x=fgets($sock); 
  17.  echo "<br>$x.$x<br>"; 
  18.  
  19.  
  20. fputs($sock,"QUITrn");
  21.  $x=fgets($sock); 
  22.  echo "<br>$x<br>"; 
  23.  
  24. fclose($sock); 
  25. ?>


Łączy on sie z POP3 a następnie wydaje komędę LIST i tu jest problem.
Wynik komędy powinien wyglądac np. tak:

Kod
+OK
1 1563
2 1918


Niestety skrypt pokazuje mi tylko +OK i nic więcej po komędzie list. Jak wyświetlić całość ?

Ten post edytował kiler129 16.03.2007, 19:01:32
Go to the top of the page
+Quote Post
BiRetis
post
Post #2





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 27.02.2007
Skąd: Zielona Góra

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


Jeżeli nie podajesz długości wiersza dla funkcji fgets to domyślnie przyjmuje ona 1024 bajty. To oczywiście nie jest przyczyną błędu twojego skryptu, błędem jest założenie iż fgets czyta cały plik, wprost przeciwnie czyta tylko jedną linię z pliku tekstowego czyli jeden wiersz...

  1. <?php
  2. while(!feof($plik_otwarty)){
  3. $linia = fgets($plik_otwarty, $dlugosc_wiersza);
  4. }
  5. ?>


P.S. równie dobrze możesz użyć fread, funkcje odczytu i zapisu plików działają przy gniazdach w PHP

Ten post edytował BiRetis 16.03.2007, 19:12:02
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 3.10.2025 - 04:37