![]() |
![]() ![]() |
![]() |
![]()
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 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 680 Pomógł: 0 Dołączył: 1.10.2002 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Pewnie dlatego, że wynik przekracza 1024 bajty...
Poczytaj o funkcji fscanf()... -------------------- "Czerp z innych, ale nie kopiuj ich. Bądź sobą." Michel Quoist
|
|
|
![]()
Post
#3
|
|
![]() 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 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 18.07.2025 - 07:47 |