English | 简体中文 | 繁體中文
查询

ssh2_sftp_stat()函数—用法及示例

「 获取远程文件或目录的状态信息 」


函数名称:ssh2_sftp_stat()

适用版本:PHP 5 >= 5.2.0, PECL ssh2 >= 0.9.0

函数描述:获取远程文件或目录的状态信息

用法: ssh2_sftp_stat(resource $sftp, string $path): array|false

参数:

  • $sftp:SSH2 SFTP 资源,通过 ssh2_sftp_connect() 函数获取
  • $path:远程文件或目录的路径

返回值: 如果成功,返回一个包含文件或目录的状态信息的关联数组,包括以下键:

  • 'size':文件尺寸,以字节为单位
  • 'uid':文件所有者的用户 ID
  • 'gid':文件所有者的组 ID
  • 'mode':文件或目录的权限模式
  • 'atime':最后一次访问时间的时间戳
  • 'mtime':最后一次修改时间的时间戳 如果失败,返回 false。

示例:

// 连接到远程服务器
$connection = ssh2_connect('example.com', 22);
ssh2_auth_password($connection, 'username', 'password');

// 获取 SFTP 资源
$sftp = ssh2_sftp($connection);

// 获取文件的状态信息
$file = '/path/to/file.txt';
$stat = ssh2_sftp_stat($sftp, $file);

if ($stat !== false) {
    echo "文件大小:" . $stat['size'] . " 字节\n";
    echo "文件所有者的用户 ID:" . $stat['uid'] . "\n";
    echo "文件所有者的组 ID:" . $stat['gid'] . "\n";
    echo "文件权限模式:" . $stat['mode'] . "\n";
    echo "最后一次访问时间:" . date('Y-m-d H:i:s', $stat['atime']) . "\n";
    echo "最后一次修改时间:" . date('Y-m-d H:i:s', $stat['mtime']) . "\n";
} else {
    echo "无法获取文件状态信息。\n";
}

注意事项:

  • 需要安装 ssh2 扩展才能使用该函数。
  • 远程服务器必须支持 SSH2 SFTP 协议才能正常使用该函数。
  • 需要先通过 ssh2_connect()ssh2_auth_password() 等函数建立 SSH 连接和认证。
  • $path 参数为远程文件或目录的绝对路径,相对路径可能导致无法获取文件状态信息。
  • 可以根据返回的状态信息进行相应的逻辑处理,如判断文件是否存在、判断权限等。
补充纠错
上一个函数: ssh2_sftp_unlink()函数
下一个函数: ssh2_sftp_rmdir()函数
热门PHP函数
分享链接