Результат соединения php fopen ssh2 sftp Идентификатор ресурса # 5

Используя следующий код, я получаю результат «Идентификатор ресурса № 5», если я повторяю $stream

Я использую PHP 7.0 на apache (linux) phpinfo:

  • ssh2
  • версия расширения 0.12+dev
  • libssh2 версии 1.5.0
  • баннер SSH-2.0-libssh2_1.5.0*

    <?php
    // $server = ... etc.
    $connection = ssh2_connect($server, $port);   
    ssh2_auth_password($connection, $username, $password); 
    $sftp = ssh2_sftp($connection);
    
    $filename = 'test.csv';
    
    $stream = fopen("ssh2.sftp://" . intval($sftp) . "/dir/$filename", 'r'); 
    echo $stream; // Result: "Resource id #5"
    ?>
    

Результат: «Идентификатор ресурса № 5», и я не знаю, что я делаю неправильно.


person Korty    schedule 03.04.2019    source источник
comment
Не знаете, какую часть вы считаете неправильной? Выглядит ожидаемо для меня.   -  person Jonnix    schedule 03.04.2019
comment
Я хочу получить содержимое файла CSV, но получаю результат в браузере с идентификатором ресурса № 5, но я не знаю, почему   -  person Korty    schedule 03.04.2019
comment
google.com/   -  person mario    schedule 03.04.2019


Ответы (1)


Если вы пытаетесь прочитать файл, вам придется выполнить fread() в $stream. Вы не можете просто повторить результат fopen.

person Lulceltech    schedule 03.04.2019
comment
$contents = fread($stream, размер файла($remoteFile)); fclose ($ поток); Результат: размер файла (): ошибка статистики для /dir/test.csv - person Korty; 03.04.2019
comment
На самом деле существует удаленная версия fread, я хотел, чтобы вы посмотрели руководство по PHP: php.net/manual/en/function.fread.php. Искомая функция: $contents = stream_get_contents($handle); fclose ($ дескриптор); - person Lulceltech; 03.04.2019
comment
fgets() помог мне, ни за что... - person Korty; 03.04.2019