如何使用PHP进行SFTP?

2022-08-30 08:00:46

我遇到了许多用于Web FTP客户端的PHP脚本。我需要在PHP中实现SFTP客户端作为Web应用程序。PHP 是否支持 SFTP?我找不到任何样品。任何人都可以帮我吗?


答案 1

PHP 具有 ssh2 流包装器(默认情况下禁用),因此您可以将 sftp 连接与任何支持流包装器的函数一起使用,例如ssh2.sftp://

file_get_contents('ssh2.sftp://user:pass@example.com:22/path/to/filename');

或 - 当同时使用 ssh2 扩展时

$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');
$sftp = ssh2_sftp($connection);
$stream = fopen("ssh2.sftp://$sftp/path/to/file", 'r');

查看 http://php.net/manual/en/wrappers.ssh2.php

顺便说一句,关于这个话题已经有很多问题了:


答案 2

ssh2 函数不是很好。难以使用和更难安装,使用它们将保证您的代码具有零可移植性。我的建议是使用phpseclib,一个纯粹的PHP SFTP实现


推荐