Dutch PHP Conference 2019

ftp_mdtm

(PHP 4, PHP 5, PHP 7)

ftp_mdtm返回指定文件的最后修改时间

说明

int ftp_mdtm ( resource $ftp_stream , string $remote_file )

ftp_mdtm() 检查指定文件的最后修改时间,并以 UNIX 时间戳的方式返回。如果发生错误,或文件不存在则返回 -1。

Example #1 ftp_mdtm() 例子

<?php
$file 
'somefile.txt';

// connect to the server
$conn_id ftp_connect($ftp_server);
$login_result ftp_login($conn_id$ftp_user_name$ftp_user_pass);

//  get the last modified time
$buff ftp_mdtm($conn_id$file);

if (
$buff != -1) {
    
// somefile.txt was last modified on: March 26 2003 14:16:41.
    
echo "$file was last modified on : " date ("F d Y H:i:s."$buff);
} else {
    echo 
"Couldn't get mdtime";
}

// close the connection
ftp_close($conn_id);
?>

如果成功返回一个 UNIX 时间戳,否则返回 -1。

Note:

某些 FTP 服务器可能会不支持这个特性。

Note:

ftp_mdtm() 函数不适用于检查目录。

add a note add a note

User Contributed Notes 3 notes

up
1
mawkapelle at gmail dot com
5 days ago
Wrapped the above in a function, for easy use:

function getMtime($filename, $server, $login, $pwd){

    // set up connection
    $conn_id = ftp_connect($server) or die("ERROR:Could not connect to $server");

    // login
    $login_result = ftp_login($conn_id, $login, $pwd);

    //  get the last modified time for our file
    $buff = ftp_mdtm($conn_id, $filename);

    // close the connection
    ftp_close($conn_id);

    if ($buff != -1) {
        // somefile.txt was last modified on: March 26 2003 14:16:41.
        return "$filename was last modified on : " . date("F d Y H:i:s.", $buff);
    } else {
        return "ERROR: Could not retrieve mdtime";
    }
}

$filename='example.csv';
$server='ftp.example.nl';
$login='supersecureloginhere';
$pwd='supersecurepwd';

$mtime=getMtime($filename, $server, $login, $pwd);
echo $mtime;
up
0
Jaytop
13 years ago
Seems to work with directories as well on my Win32 box.
up
-5
wseibert at hxcorp dot com
14 years ago
When trying to get the modified time of a file that has spaces in it, ftp_mdtm will fail on some FTP servers.  If this happens, surround the file name with quotes.

$file_name = "my index.html";

$file_modtime = ftp_mdtm($connection, '"'.$file_name.'"')
To Top