php高并发访问写文件

function write ( $data )
{
    $return = false;
    if ( $handle = @fopen ( 'error.txt','a+' ) )
    {
        $i=0;
        while ( !flock ( $handle,2 ) && $i++ < 3 )
        {
            usleep ( 500000 );
        }
 
        if ( $i < 3 && fwrite ( $handle,$data . "\r\n" ) )
        {
            flock ( $handle,3 );
            $return  = true;
        }
 
        fclose ( $handle );
    }
    return $return;
}

编程技巧