fwrite overfører kun noget af indholdet
HejJeg har lavet et php script, som overfører en csv fil med data til en ekstern server. Nogle gange overfører den fint filen med alt indhold, men andre gange overfører det en tom fil eller en fil kun med dele af indholdet
Koden ser sådan ud:
$fp = (file_exists($path))? fopen($path, "w") : fopen($path, "w");
usleep(2000000);
echo fwrite($fp, $data);
fflush($fp);
fclose($fp);
hvor $path er linket til den eksterne server og $data er indholdet, der skal skrives
Jeg har forsøgt at løse problemet på forskellige måder, men uden succes:
Jeg har prøvet at køre cronjob der skriver indholdet i løbet af natten, hvor presset på den eksterne server er minimal.
Jeg har også prøvet at tilføje usleep med forskellige tidsintervaller samt ændret programmet, så det kun skriver 10 linjer ad gangen, men ingen af ​​de ovennævnte metoder har fungeret korrekt.
Endelig har jeg prøvet med og uden fflush ligesom jeg har prøvet med forskellie usleep intervaller.
fwrite($fp, $data); returnerer det antal bytes som skal sendes, hvilket lige nu er 4541 uanset, om den scriptet sender en tom fil , det hele eller dele af indholdet.
Når jeg tester på den lokale server (redirecter $path til en folder på min egen server, overfører den alt indholdet hver gang, så det er kun, når det er på det eksterne site, at det kan give problemer.
Nogen forslag til hvad problemet kunne være?
Hilsen, Carsten
