Programmer4me
Programmer4me

Reputation: 99

filesize() return 0 ?

im trying to insert an array values into the file using foreach.. and if the file size became up to 1MB (1000000byte). the script create a new file and put the value inside...

this is the code what i used :

foreach($array as $code){  

if(filesize($file_name) < '1000000'){
    $update_file = file_get_contents($file_name);
    file_put_contents($file_name,$update_file.$code);
}else{
    $open = fopen($file_name.rand('99999'),'w');
    file_put_contents($file_name,$code);

    }
echo filesize($file_name);
}

now the problem is the function "filesize()" is always returning 0,, but if i remove the code above it and put echo filesize($file_name); only in the page .. it return the right value (size of file), the script also make only 1 file even it became more than 1MB because the filesize is 0 as filesize() function return !.

i checked this question PHP Problem : filesize() return 0 with file containing few data? but it still not working even i follow the answer #1

i wish that you understand my problem.. and im sorry for my english.

Upvotes: 8

Views: 4651

Answers (1)

ajreal
ajreal

Reputation: 47321

function filesize is cached internally
you need to explicitly use clearstatcache after each write

beside this, the usage of file_put_contents does not seem to be correct

please refer to the manual for more information

Upvotes: 11

Related Questions