提问者:小点点

使用FTP读取文件。日志文件和显示内容


所以我做了一个FTP服务器,我可以上传文件到它。但是现在我想显示一个。日志文件内容(纯文本),但我似乎不知道该怎么做。

我用这个函数做了一个类,我可以看到上传的文件存在,但是我如何打印4404.log的内容?

function FTP_read(){
    ob_end_flush();
    $conn_id = ftp_connect($this->ftp_server);

    $login_result = ftp_login($conn_id, $this->ftp_user_name, $this->ftp_user_pass);
    // get contents of the current directory
    $contents = ftp_nlist($conn_id, ".");

    // output $contents
    var_dump($contents);
}

我以为我可以使用ftp_get(),但是为什么我必须写入另一个文件?

ftp_get()从FTP服务器检索一个远程文件,并将其保存到本地文件中。

预期会得到如下结果(打印日志内容):


共1个答案

匿名用户

创建了一个连接,并打开了一个php://temp文件,然后使用ftp\u fget(…)以写入该文件。然后,$h文件就有了内容,所以我不得不一行一行地遍历该文件,这似乎很有效。

function FTP_read(){
    ob_end_flush();
    $conn_id = ftp_connect($this->ftp_server);

    $login_result = ftp_login($conn_id, $this->ftp_user_name, $this->ftp_user_pass);

    ftp_pasv($conn_id, true);

    $h = fopen('php://temp', 'r+');

    ftp_fget($conn_id, $h, '4404.log', FTP_BINARY, 0);

    fseek($h, 0);

    while(!feof($h)) {
        $line = fgets($h);
        echo "$line"."<br>";
    }

    fclose($h);
    ftp_close($conn_id);
}