public function read($remote, &$buffer)
{
$mode = $this->DetectedMode($remote);
// Bat passive mode on
if (ftp_pasv($this->conn_id, true) === false) {
$this->error = NV_FTP_ERR_PASSIVE_ON;
return false;
}
if (!in_array('nvbuffer', stream_get_wrappers())) {
stream_wrapper_register('nvbuffer', 'NukeViet\\Ftp\\Buffer');
}
$tmp = fopen('nvbuffer://tmp', 'br+');
if (ftp_fget($this->conn_id, $tmp, $remote, $mode) === false) {
fclose($tmp);
$this->error = NV_FTP_ERR_FGET;
return false;
}
rewind($tmp);
$buffer = '';
while (!feof($tmp)) {
$buffer .= fread($tmp, 8192);
}
fclose($tmp);
return true;
}