php不能在ftp_fget之后回显流

时间:2015-07-16 10:17:09

标签: php ftp resources filestream fopen

在通过ftp_fget从远程服务器提取流后不能回显流,但是如果我把它写到文件中它有点工作......

我想我需要像fclose和fopen = freopen这样的东西? :d

我需要从缓存/缓冲区写入文件流..?

如果我在写入文件后fclose并再次打开它我很容易回应它。

不工作

    function download (){
     $fs = fopen('php://temp', "w+");
     ftp_fget($this->connection,$fs,$this->targetdir . $name, FTP_BINARY);
     ftp_close($this->connection);
     return $fs;
    }

    echo stream_get_contents(download('file.xml'));

有点工作(文件包含文本,因为脚本执行后自动关闭)

    function download (){
     $fs = fopen('file.xml', "w+");
     ftp_fget($this->connection,$fs,$this->targetdir . $name, FTP_BINARY);
     ftp_close($this->connection);
     echo $fs
     return $fs;
    }

    echo stream_get_contents(download('file.xml')); //still doesn't work

1 个答案:

答案 0 :(得分:0)

解决方案

您需要在写入后将指针设置回开头。

必需的命令:fseek()

function test (){
    $fs = fopen('php://temp', "w+");
    ftp_fget($this->connection,$fs,$this->targetdir . $name, FTP_BINARY);
    ftp_close($this->connection);
    fseek($fs,0);
    return $fs;
}