打开并锁定文件后,将文件行加载到数组中(PHP)

打开并锁定文件后,将文件行加载到数组中(PHP),php,arrays,file-io,Php,Arrays,File Io,打开文件后,是否有一种快速的方法将文件的每一行从文件加载到数组中 例如: $handle = fopen("file", "r+"); flock($handle, LOCK_EX); $array = load_lines($handle); <- need this // compute on the array fwrite($handle, $array); flock($handle, LOCK_UN): fclose($handle); $handle=fopen(“文件

打开文件后,是否有一种快速的方法将文件的每一行从文件加载到数组中

例如:

$handle = fopen("file", "r+");
flock($handle, LOCK_EX);
$array = load_lines($handle);   <- need this
// compute on the array
fwrite($handle, $array);
flock($handle, LOCK_UN):
fclose($handle);
$handle=fopen(“文件”、“r+”);
植绒($手柄,锁紧装置);
$array=加载线($handle) 试试这个:

function load_lines($handle)
{
    $array = array();

    while(!feof($handle)
    {
        $array[] = fgets($handle);
    }

    return $array;
}
试试这个:

function load_lines($handle)
{
    $array = array();

    while(!feof($handle)
    {
        $array[] = fgets($handle);
    }

    return $array;
}

在php上在php上锁定文件后,是否有任何原因不能使用
file()
?我在考虑这个问题,但如果我的文件被锁定,我不确定该如何工作。从技术上讲,我有一个文件打开的流,文件不会导致另一个读取请求挂起。为什么不考虑使用一个数据库来进行锁处理?@ AjReal:我已经考虑过了,但是我以前从来没有使用过。现在我到处都在使用平面文件,最终我想迁移到数据库。有什么理由在锁定后不能使用
file()
?我在想这个问题,但如果我的文件被锁定,我不确定这是怎么回事。从技术上讲,我有一个文件打开的流,文件不会导致另一个读取请求挂起。为什么不考虑使用一个数据库来进行锁处理?@ AjReal:我已经考虑过了,但是我以前从来没有使用过。现在我到处都在使用平面文件,最终我想迁移到数据库。所以如果它忽略了锁定,应该可以安全使用吗?我在寻找100%的可靠性。@MaxMackie上面的脚本在5.3.6中工作正常。上述脚本还应与php的较低版本兼容。在5.3中,脚本将在
flock()
行上阻塞(如果您不使用非阻塞,请参阅php.net了解更多信息),并在获得锁后正常继续。因此,如果它忽略了锁定,应该可以安全使用吗?我在寻找100%的可靠性。@MaxMackie上面的脚本在5.3.6中工作正常。上述脚本还应与php的较低版本兼容。在5.3中,脚本将在
flock()
行上阻塞(如果不使用非阻塞,请参阅php.net了解更多信息),并在获得锁后正常继续。