PHP fclose不';以后打开文件时,请不要将其解锁

PHP fclose不';以后打开文件时,请不要将其解锁,php,fopen,fclose,Php,Fopen,Fclose,我的问题出现在尝试登录文件时。我用一个ToLog方法创建了一个cLog类,其工作原理如下: function ToLog($logType, $text) { $myDate = date("H:i:s d/m/Y"); $ip = $_SERVER['REMOTE_ADDR']; $fichero = $this->GetLogFilename($logType); $filehandler = fopen($this->pathfichero

我的问题出现在尝试登录文件时。我用一个ToLog方法创建了一个cLog类,其工作原理如下:

function ToLog($logType, $text) {


    $myDate = date("H:i:s d/m/Y");
    $ip = $_SERVER['REMOTE_ADDR'];

    $fichero = $this->GetLogFilename($logType);
    $filehandler = fopen($this->pathfichero.$fichero, "a");
    if ($filehandler == false)
    {
        print_r (error_get_last());
    }

    fputs($filehandler, $myDate.' | IP: '.$ip.' | USER: '.$_SESSION['usr'].' | '.$text."\r\n");         
    fclose($filehandler);

    return;

}
如果我从其他类中的方法内部创建一个oLog()对象,并调用$oLog->ToLog($logtype,'what I want to log'),效果很好,但是当我调用其他方法,再次调用$oLog->ToLog(…)方法时,它失败并告诉我:

 [type] => 2 [message] => fopen(log.admin): failed to open stream: Permission denied [file] => /.../cLog.php

这是怎么回事?当我第一次在文件上写它工作时,第二次即使我已经关闭了它,PHP告诉我“权限被拒绝”。我怀疑写入+关闭文件会延迟,但我该如何解决这个问题呢?

请注意,如果($filehandler==false),则需要返回,而不是返回fputs()True!这并不是它失败的原因,但你是对的。