Récupérer un fichier de nom inconnu

Eléphant du PHP | 256 Messages

18 déc. 2010, 09:43

Bonjour,
J'ai une caméra IP qui envoie des photos sur mon domaine Internet en cas de détection de mouvement.
Chaque fichier photo reçoit un nom qui contient date, heure et un numéro de séquence du style 00606E608B6F(Home)_1_20101217222703_34.jpg
Je voudrais afficher les images sur une page mais je ne connais pas a priori le nom des fichiers; comment faire (éventuellement en php) ?
Merci d'avance pour votre aide
Rudy

ViPHP
xTG
ViPHP | 7331 Messages

18 déc. 2010, 10:42

C'est bien sûr impossible en html.
En PHP il faut te pencher du côté des fonction opendir et readdir. ;)

Eléphant du PHP | 256 Messages

18 déc. 2010, 11:06

Merci pour la réponse rapide; c'est l'info que je cherchais.

J'ai essayé
$dir = opendir("URL");

je reçois
Warning: opendir(URL): failed to open dir: not implemented in /customers/URL on line 3

en remplaçant évidemment URL par l'adresse http://www...

ViPHP
xTG
ViPHP | 7331 Messages

18 déc. 2010, 11:32

Attention, essayes-tu de récupérer des images se trouvant sur un autre serveur que celui où est interprété PHP ?
Les fonctions que je t'ai donné ne fonctionnent bien évidemment que pour le serveur où s'exécute le script.

On ne peut donc lui passer une url absolue. Il faut passer par une url relative.

Eléphant du PHP | 256 Messages

18 déc. 2010, 11:56

Non mais j'ai trouvé :
j'avais mis le fichier php qui va chercher le contenu de la directory dans la directory elle-même, alors il cherche une sous-directory qui porte ce nom.
j'ai mis le fichier php un niveau plus haut et ça fonctionne.

Le problème que j'ai maintenant est qu'il va chercher les fichiers dans un ordre qui n'est pas chronologique.
En fait je voudrais afficher d'abord le fichier le plus récent.
Y aurait-il une option "sort" ou quelque chose comme ça ?

Rudy

ViPHP
xTG
ViPHP | 7331 Messages

18 déc. 2010, 13:41


devlop78
Invité n'ayant pas de compte PHPfrance

18 déc. 2010, 13:53

Sinon glob() qui est quand même plus facile à utiliser.

Eléphant du PHP | 256 Messages

18 déc. 2010, 14:16

OK, merci.
Comme le nom du fichier contient la date et l'heure de chaque photo, et qu'il n'y a pas 2 noms de fichier identiques, il suffit d'un array à une seule entrée et tri sur le nom du fichier.
Ceci est-il correct ?

while($file = readdir($dir)) $tab[] = array($file);

function cmp($a,$b) return ($a[0] < $b[0]) ? -1 : 1;

usort($tab, "cmp");

foreach($tab as $elem) echo $elem[0]."<br>";