|
Posted by Jason Barnett on 05/17/05 03:18
....
>> Hmmmm... well, file_get_contents() doesn't lock the file so I'm
>> interested in how you're accomplishing this feat. Perhaps you're
>> creating a temporary directory (atomic IIRC) for the filename and then
>> flocking that? I dunno, I hate race conditions.
>>
> I was to fast with that, I didn't look into it enough..
> What _would_ be the fastest way (+locking) to do this?
>
I haven't tested either of these options, but two ideas come to the top
of my head:
1. if( mkdir($filename. '.lck') ) $text = file_get_contents($filename);
/* be sure to rmdir($filename . '.lck') when operation is complete */
2. regular steps of fopen(), flock() / mkdir(), fgets(), fclose(),
flock() / rmdir()
In any case you will find the user notes for flock() are useful:
http://php.net/manual/en/function.flock.php
>> You might also want to consider the security of the data that goes
>> into your cache'd $_APP data. Because any file that is created by PHP
>> is going to be in pretty much the same boat as the default session
>> files and on a shared server, well...
>>
> That's from a different thread, and is a different issue. I agree with
> your argument though, I'm aware of this risk, but most of the time I
> code on dedicated servers anyway =)
>
> grt,
> Evert
Lucky you! Hey what can I say except that I can occasionally remember
more than simply what is on screen *right now* and I try to put it all
together when I can.
Navigation:
[Reply to this message]
|