我用这个函数从SFTP上的一个目录中获取文件。它返回文件夹中的所有文件,但是带有一个很难解析的filetime。
我想要的是得到最新修改的文件。
private function getDirList()
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $this -> host);
curl_setopt($ch, CURLOPT_USERPWD, $this -> user . ":" . $this -> pass);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
if (curl_exec($ch) === false) {
echo 'Curl error: ' . curl_error($ch);
exit();
}
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'LIST');
$result = trim(curl_exec($ch));
$files = array();
foreach (explode("\n", trim($result, "\n")) as $line) {
$files[] = $line;
}
return $files;
}
我从函数中得到的结果:
Array
(
[0] => -rw-rw-rw- 1 user group 4482926 Jan 19 01:30 file1.csv
[1] => -rw-rw-rw- 1 user group 4291169 Oct 21 00:33 file2.csv
[2] => -rw-rw-rw- 1 user group 4469721 Dec 14 01:30 file3.csv
[3] => -rw-rw-rw- 1 user group 4275439 Sep 28 00:30 file4.csv
[4] => -rw-rw-rw- 1 user group 4244881 Sep 6 2018 file5.csv
[5] => -rw-rw-rw- 1 user group 4310557 Nov 2 01:30 file6.csv
[6] => -rw-rw-rw- 1 user group 4310765 Nov 5 01:30 file7.csv
[7] => -rw-rw-rw- 1 user group 4245407 Sep 11 00:30 file8.csv
[8] => -rw-rw-rw- 1 user group 4198017 Sep 1 2018 file9.csv
[9] => -rw-rw-rw- 1 user group 4311228 Nov 10 01:31 file10.csv
...
我可以为每个文件做一个调用并获得一个更好的文件时间吗?我可以为不同的列表发送不同的customrequest吗?
2条答案
按热度按时间kxkpmulp1#
请考虑使用phpseclib。
您可以使用下列程式码:
phpseclib不需要任何安装。只要解压缩源代码包和你的代码就可以了。尽管要加载最新的phpseclib 2.0,他们推荐使用Composer。如果你不想依赖其他库来加载,你可以使用下面的代码来加载phpseclib:
cgh8pdjw2#
只需使用下面的选项即可列出目录名称。
curl_easy_setopt(curl, CURLOPT_DIRLISTONLY, 1L);
使用
curl_easy_setopt(curl, CURLOPT_DIRLISTONLY);
到包含所有信息的目录。