A propos de ftp_mdtm?

Eléphant du PHP | 168 Messages

13 janv. 2010, 10:58

Bonjour à tous,
Je souhaite utiliser la fontion ftp_mdtm pour récupérer la date de dernière modification d'un fichier zip sur mon serveur ftp. Mon code:
$conn_id = ftp_connect($ftp_server);
$login_result = ftp_login($conn_id, "$ftp_user_name", "$ftp_user_pass");
if($login_result) echo "connecté au serveur ftp"; else echo "connexion au serveur ftp échoué"."<br/>"; 
$file = "Ludwig.ZIP";

$buff = ftp_mdtm($conn_id, $file);

if ($buff != -1) {
    // somefile.txt was last modified on: March 26 2003 14:16:41.
    echo "$file a été modifié pour la dernière fois : " . date("F d Y H:i:s.", $buff);
} else {
    echo "Impossible de récupérer mdtime";
}

// Fermeture de la connexion
ftp_close($conn_id);
Mais bien sûr j'obtiens "impossible de récupérer mdtime. Cette fonction ne marche pas sur les fichiers zip? Où bien j'ai un problème dans mon code.
Au passage j'ai testé que le fichier en question était bien trouvé.
Si quelqu'un sait si cette fonction marche avec les zip je serai heureux qu'il me réponde.
Merci

Mammouth du PHP | 672 Messages

13 janv. 2010, 12:05

Ton fichier est à la racine de ton FTP ?

Essaye de faire un ftp_nlist sur le dossier courant...

Eléphanteau du PHP | 12 Messages

13 janv. 2010, 12:51

As-tu essayé avec un autre fichier ?
Note: Tous les serveurs ne supportent pas cette fonctionnalité !
(source http://fr2.php.net/manual/fr/function.ftp-mdtm.php)

Peut-être est-ce ton cas ?

Eléphant du PHP | 168 Messages

13 janv. 2010, 13:13

Bien sûr j'ai essayé avec un fichier texte et ça marche.
En faisant un ftp_nlist je retrouve bien mon fichier zip.
Apparement ftp_mdtm ne marche pas avec les zip, la doc php stipule que ça ne marche pas avec les dossiers.
Quelqu'un sait-il comment je pourrais la date de dernière modification de mon .zip. En ssh peut-être?

Eléphant du PHP | 86 Messages

13 janv. 2010, 16:56

Salut,

Pour faire court :

Code : Tout sélectionner

echo "$file a été modifié pour la dernière fois : ".date("F d Y H:i:s.", filemtime($file));
Si ça ne marche toujours pas, c'est que tu as mis ".ZIP" au lieu de ".zip" dans le nom de ton fichier.

A+

Eléphant du PHP | 168 Messages

13 janv. 2010, 18:56

Non pas du tout, si ça ne marche pas c'est que la fonction ne fonctionne pas avec un .zip.
J'ai jeté un oeil sur les connexions SSH et apparement il existe une fonction qui permet de faire ce que je veux; mais j'ai pas encore testé.

Eléphant du PHP | 86 Messages

14 janv. 2010, 11:26

filemtime fonctionne très bien avec toutes les extensions.

Eléphant du PHP | 168 Messages

14 janv. 2010, 11:43

cette fonction, je suppose, n'est pas une fonction ftp; c'est à dire quelle ne permet pas de récupérer les valeurs de fichiers sur un ftp, si?

Eléphant du PHP | 86 Messages

14 janv. 2010, 11:55

j'ai testé avant de poster :
$conn_id = ftp_connect("monftp");
$login_result = ftp_login($conn_id, "login", "pass");
if($login_result) echo "connecté au serveur ftp"; else echo "connexion au serveur ftp échoué"."<br/>";
$file = "test.zip";
echo "<br/>$file a été modifié pour la dernière fois : ".date("F d Y H:i:s.", filemtime($file));
ftp_close($conn_id);
Résultat :
connecté au serveur ftp
test.zip a été modifié pour la dernière fois : January 13 2010 15:50:59.

Eléphant du PHP | 168 Messages

14 janv. 2010, 11:59

d'accord, je vais voir ça

EDIT j'obtiens ça :Warning: filemtime() [function.filemtime]: stat failed for Ludwig.ZIP in C:\wamp\www\monserveur\lect.php on line 13

Ludwig.ZIP a été modifié pour la dernière fois : January 01 1970 00:00:00.


EDIT2: en fait la fonction ftp_mdtm fonctionne!!!(je suis trop nul!!!) mon fichier ne s'appelle Ludwig, mais ludwig. La haine!!!
Modifié en dernier par jojo1000 le 14 janv. 2010, 12:06, modifié 1 fois.

Eléphant du PHP | 86 Messages

14 janv. 2010, 12:05

Tu lui as fait quoi à ton serveur ? ^^