rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Non résolu

Ouvrir la photo la plus récente sur le site

Posté par ppellero, le mardi 26 décembre 2006 à 22:09:29
Bonjour,

Je suis nouveau dans ce forum.
Est-ce que quelqu'un peut m'indiquer un script en PHP ou Javascript pour ouvrir la photo la plus récente du répertoire de mon site contenant les photos venant de ma webcam.
Les photos sont numérotées ex:image0001.jpg.
Quand on appelle la page de la webcam il faudrai que la dernière photo apparaisse et que la page se rafraichisse et recharge la photo qui arrive.
Ceci afin de garder un historique de toutes les photos.
Merci de votre attention.
Configuration: Windows XP
Mozilla 1.7.8
Répondre à ppellero  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Ssylvainsab, le mercredi 27 décembre 2006 à 00:21:38
Bonsoir.

Est-ce que toutes les images ont le même nom avec seulement le numéro différent ?
C'est à dire :
image0001.jpg
image0002.jpg
image0003.jpg
image0004.jpg
image0005.jpg
...

En PHP, ce script peut marcher je pense :
<?php
$i=1;
$NumeroImage='000'.$i;
while(file_exists('image'.$NumeroImage.'.jpg'));
{
  $i++;
   if($i<10)
     $NumeroImage='000'.$i;
   elseif($i<100)
     $NumeroImage='00'.$;
   //en supposant qu'il n'y a pas plus de 999 images.
   else
     $NumeroImage='0'.$i;
}
echo 'La dernière image est "image'.$NumeroImage.'.png"';
?>

Ca, il faut le faire au chargement de la page. Comme ca tu peux afficher la dernière image en changeant les paramètres de echo.

Ensuite, tu peux mettre un script JS qui vérifie si l'image dont le numéro est un de plus que l'image en cours existe, et répète cette fonction toutes les 5 minutes par exemple.
function AfficherDerniereImage(NumeroImageID,NumeroImageSuivante)
{
  var Image=document.getElementsByTagName('img')[0];
  var NumeroImage=Image.id;
  var NumeroImageSuivante=NumeroImage+1;
  if(le fichier existe('image'+NumeroImageSuivante+'.jpg'))
  {
    Image.src='image'+NumeroImageSuivante+'.jpg';
    Image.id=NumeroImageSuivante
   }
  setTimeout('AfficherDerniereImage('+NumeroImageSuivante+','+­NumeroImageSuivante+1+')',60000);
}
setTimeout('AfficherDerniereImage('+NumeroImageSuivante+','+­NumeroImageSuivante+1+')',60000);

Pour le code JavaScript je ne suis pas sur.
En php, il faut donner un attribut "id" a l'image qui correspond à son numéro.

Je ne suis pas sur que ca fonctionne, mais a mon avis c'est un début ;-)

a plus, et bonnes fêtes de fin d'année. Sylvain
Longue vie à bobo !
Répondre à Ssylvainsab

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
jeanch, le mercredi 27 décembre 2006 à 10:07:41
bonjour et bonne fête à tous,
la solution de ssylvain est valable si et seulement si quand tu charges tes photos, les numéros s'incrémentent et se suivent.
Pour ma part pour récupérer la dernière photo chargée j'utiliserai la fonction filemtime() qui récupère, au format unix la date de la dernière modification:
ex:
<?php
//chemin d'accès à ton dossier image
$dosImg = "./ton dossier/";
//initialisation du tableau contenant les informations et le nom de l'image
$tabImg = array();
//boucle qui liste ton dossier
while($fichier = readdir($dosImg))
{
//suppression des informations sur le fichier par sécurité
$fichier = basename($fichier);
//récupération de la date de dernière modification
$dateModif = filemtime($fichier);
$tabImg[0] = $dateModif ;^
$tabImg[1] = $fichier;//le nom du fichier ici 000x.jpg
}
//tri du tableau sur la première colonne
ksort($tabImg);
//affichage du tableau
while(list($time, $img) = each($tabImg))
{
echo "<p><a href=\"".$dosImg.$tabImg[1]."\">"­;.$tabImg[1]."</a></p>";
}
?>
j'ai écrit la fonction à la volée et je ne l'ai pas vérifiée, mais le principe est là.
Tu auras peut-être besoin de créer une fonction de tri utilisateur
voir la fonction usort()
Répondre à jeanch

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
jeanch, le mercredi 27 décembre 2006 à 10:12:23
errata
dans la boucle d'affichage, utilise les variables de list()
la première correspond à la clef de tri
donc ton affichage sera
echo "<p><a href=\"".$dosImg.$img."\">".$img­."</a></p>";
Répondre à jeanch

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
jeanch, le mercredi 27 décembre 2006 à 10:17:08
errata bis, j'en fais beaucoup ce matin, non mais quand même!
tu veux la derniere image donc utilise la fonction
end($tabImg) ; qui te retournera la derniere occurence du tableau
Répondre à jeanch

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
ppellero, le jeudi 28 décembre 2006 à 20:34:44
OK merci pour vos réponses ça me fait un bon début.
Répondre à ppellero

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
ppellero, le lundi 1 janvier 2007 à 16:42:44
Bonjour et bonne année à tous.

J'ai résolu mon problème de script avec votre aide.
Voici ce que j'ai fait et ça marche!!!
<html>
<head>
<title>En direct avec ma webcam</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta http-equiv="refresh" content="20">
<meta http-equiv="Pragma" content="no-cache">
</head>

<body>
<?php
// remplis un tableau avec les noms de fichiers d'un dossier
$handle = opendir('./.');
while ( $file = readdir($handle) ) {
if (substr($file,0,5) == "photo" ){
$tab[] = $file;
}
}
closedir($handle);


//foreach ($tab as $element) { //pour verifier le contenu du tableau
//echo "$element\n<br>";
// }

$photo = end($tab);

echo"<img border='1' src='$photo' width=640 height= 480 >";

?>


</body>
</html>

Voila j'ouvre cette page dans un popup et c'est bon.
Si vous pensez améliorer ce code ne vous génez pas:)
Répondre à ppellero

7


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 Ssylvainsab, le lundi 1 janvier 2007 à 17:24:06
Salut.

Le JS ne va pas pour recharger l'image sans la page ?
Car à mon avis c'est un peu lourd de recharger toutes les 20 secondes ;-)


A propos de l'amélioration du code, voici ce que j'ai fait.
A mon avis c'est ce qu'il y a de plus optimisé.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="fr">
<head>
  <meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
  <meta http-equiv="refresh" content="20">
  <meta http-equiv="Pragma" content="no-cache">
  <title>En direct avec ma webcam</title>
</head>
<body>
<?php
//rempli un tableau avec les noms de fichiers d'un dossier
$handle=opendir('./.');
while($file=readdir($handle))
{
  if(substr($file,0,5)=='photo')
    $tab[]=$file;
}
closedir($handle);

$photo=end($tab);
echo'<img style="border-width:1px;width:640px;height:480px" src="',$photo,'">';
?> 
</body>
</html>


a plus Sylvain
Longue vie à bobo !
Répondre à Ssylvainsab
Logiciels pertinents trouvés dans les téléchargements
Télécharger Photo Plus 6Photo Plus - PhotoPlus 6 est un logiciel de retouche photo gratuit permettant de modifier des photos, de créer des animations, d'ajuster...Catégorie: Retouche photo
Licence: Freeware/gratuit
Télécharger AdBlock Plus 0.7.5.5AdBlock Plus - AdBlock Plus est l'une des extensions classiques de Firefox ,celui-ci bloque déjà en standard les fenêtre popup: AdBlock va...Catégorie: Extensions Firefox
Licence: Open Source
Télécharger Beneton Movie GIF 1.1.2Beneton Movie GIF - Exigences minimales : Une carte graphique compatible DirectX 8 ou plus récente (avec un minimum de 32 MB de mémoire...Catégorie: Animation
Licence: Freeware/gratuit
Télécharger BuibuiPhoto 1.34BuibuiPhoto - BuibuiPhoto est un logiciel gratuit qui va vous permettre de redimensionner, recadrer, corriger les yeux-rouges de toutes...Catégorie: Album photo
Licence: Freeware/gratuit
Plus de logiciels gratuits sur « Ouvrir la photo la plus récente sur le site »