SSH2 函数
在线手册:中文 英文
PHP手册

ssh2_sftp_stat

(PECL ssh2 >= 0.9.0)

ssh2_sftp_statStat a file on a remote filesystem

说明

array ssh2_sftp_stat ( resource $sftp , string $path )

Stats a file on the remote filesystem following any symbolic links.

This function is similar to using the stat() function with the ssh2.sftp:// wrapper in PHP 5 and returns the same values.

参数

sftp

An SSH2 SFTP resource opened by ssh2_sftp().

path

返回值

See the documentation for stat() for details on the values which may be returned.

范例

Example #1 Stating a file via SFTP

<?php
$connection 
ssh2_connect('shell.example.com'22);
ssh2_auth_password($connection'username''password');

$sftp ssh2_sftp($connection);
$statinfo ssh2_sftp_stat($sftp'/path/to/file');

$filesize $statinfo['size'];
$group $statinfo['gid'];
$owner $statinfo['uid'];
$atime $statinfo['atime'];
$mtime $statinfo['mtime'];
$mode $statinfo['mode'];
?>

参见


SSH2 函数
在线手册:中文 英文
PHP手册
PHP手册 - N: Stat a file on a remote filesystem

用户评论:

vanscot on gemail (27-Mar-2008 08:53)

for some unkwon reason, stream_set_timeout() does not work on ssh2_exec, and strem_set_blocking (on my personal case) just hangs the script until it hits the max_execution_time.
Using sleep() or usleep() does not help either, because they are arbitrary and the command passed to ssh2_exec may have not finished yet.

The (best?) way to workaround this case was using a sh script on the remote server an a file as a handshake, the using this function to stat the file and, given a certain rule, fetching the result using stream_get_contents().

The sh script should create a dummy not zero size file (the handshake), run the commands then truncate the file (finished execution of the command). On the other side, the php script, should be stating the file until it gets a 0 size and then fetch the results.

I hope that this would be usefull to somebody else until stream_set_timeout() works on ssh2_exec or the functions adds a "timeout" parameter.