Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] fread()
Forum PHP.pl > Forum > PHP
Teodor
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
KaMeLeOn
Pewnie dlatego, że wynik przekracza 1024 bajty...
Poczytaj o funkcji fscanf()...
Teodor
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
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.