Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] fread()
Teodor
post
Post #1





Grupa: Zarejestrowani
Postów: 87
Pomógł: 0
Dołączył: 13.04.2003
Skąd: Poznan

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


Ostatnio rozbudowalem moj skrypt do powiadomienia przez sms'a o nowy mailu i zauwazylem jeden maly problem:
fread() dziala roznie w zaleznosci od wersji php i OS'a serwera.
ponizsza petla pobieram maile:
[php:1:1d7a22ec2d]<?php
for ($i=1; $i<=$msg;$i++) {
fputs($fp, "RETR $in");
$s = fread($fp, 1024);
?>[/php:1:1d7a22ec2d]
Wszystko dziala ok gdy wykonuje skrypt lokalnie (Windows, php 4.23), ale gdy odpale go na Linuksie z php 4.32 pierwsze wykonanie petli pobiera tylko 1 linie.
Poradzilem sobie z tym niezbyt elegancko:
[php:1:1d7a22ec2d]<?php
for ($i=1; $i<=$msg;$i++) {
fputs($fp, "RETR $in");
$s = fread($fp, 1024);
$s .= fread($fp, 1024);
?>[/php:1:1d7a22ec2d]
Pytanie moje dlaczego tak sie dzieje?

Pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Teodor
post
Post #2





Grupa: Zarejestrowani
Postów: 87
Pomógł: 0
Dołączył: 13.04.2003
Skąd: Poznan

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


Cytat
Pewnie dlatego, że wynik przekracza 1024 bajty...
Poczytaj o funkcji fscanf()...

tez tak myslalem ale to nie to bo:
po 1. skrypt dziala ok na 1 kompie na drugim nie
po 2. sprawdzalem to czytajac az do 12KB (co i tak nie powinno miec znaczenia bo fread() ma czytac do zalozonej ilosci bajtow albo konca pliku)
po 3. ten sam mail bedacy pozniej 2 w kolejnosci pobierany byl ok (wiec odchodzi problem z konkretnym mailem)

a o fscanf() poczytam jak do domu wroce (wyglada ciekawie).

Pozdrawiam
Go to the top of the page
+Quote Post

Posty w temacie


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: 2.10.2025 - 18:33