5 photos aleatoires changeantes tous les jours d'une bd de 2000 photos, comment faire

Mediterranneo

Membre confirmé
10 Mai 2005
387
11
40
Bonjour, j'aimerais tout bientot mettre en ligne une page html (ou php?) qui affichera tous les jours, 5 images differentes, aleatoirement au choix d'une base de donnees de 2000 photos.

Sachant que je ne connais rien du tout au php, je sais en revanche creer quelques pages HTML bidon...

Les photos n'ont pas toutes la meme dimension, je crois... est-ce dommageable... ou important?

Qui pourrait me guider, svp?

Cela devrait etre pret pour le 1er decembre jusqu-au 31 decembre 2006.
 

obi wan

Membre d’élite
Club MacG
19 Mars 2003
1 628
86
...affichera tous les jours, 5 images differentes, aleatoirement au choix d'une base de donnees de 2000 photos.
...je ne connais rien du tout au php...
Cela devrait etre pret pour le 1er decembre jusqu-au 31 decembre 2006.

1. Eh ben c'est mal barré... tu ferais mieux de payer quelqu'un pour le faire (ceci dit c'est pas très cher)

2. As-tu déjà l'hébergement pour ton projet ? (2000 photos à 80 ko par photo ça fait 160 Mo quand même) Parce que si tu veux vraiment le faire tout seul le premier truc est de regarder quelle version de php est installée sur ton hébergement pour bien commencer.
 
A

Anonyme

Invité
1. Eh ben c'est mal barré... tu ferais mieux de payer quelqu'un pour le faire (ceci dit c'est pas très cher)

2. As-tu déjà l'hébergement pour ton projet ? (2000 photos à 80 ko par photo ça fait 160 Mo quand même) Parce que si tu veux vraiment le faire tout seul le premier truc est de regarder quelle version de php est installée sur ton hébergement pour bien commencer.

La question posée est quand même intéressante : y -a-t-il une fonction qui permette de choisir des fichiers de façon aléatoire ?

Albert
 

sylver

Membre confirmé
23 Septembre 2003
343
39
La question posée est quand même intéressante : y -a-t-il une fonction qui permette de choisr des fichiers de façons aléatoires ?

Albert
Une fonction qui choisit des fichiers de manière aléatoire, je ne crois pas que ça existe en natif.

Par contre, il existe des fonctions qui génèrent des nombres aléatoires. A partir de là tout est possible. Comme par exemple nommer chaque photo de 1.jpg à 2000.jpg, puis utiliser la fonction rand pour générer un nombre aléatoire entre 1 et 2000 et ensuite récupérer l'image qui a ce nombre comme nom.
 

tatouille

Vétéran
1 Juin 2004
5 174
494
Stanford CA
Bonjour, j'aimerais tout bientot mettre en ligne une page html (ou php?) qui affichera tous les jours, 5 images differentes, aleatoirement au choix d'une base de donnees de 2000 photos.

Sachant que je ne connais rien du tout au php, je sais en revanche creer quelques pages HTML bidon...

Les photos n'ont pas toutes la meme dimension, je crois... est-ce dommageable... ou important?

Qui pourrait me guider, svp?

Cela devrait etre pret pour le 1er decembre jusqu-au 31 decembre 2006.

t'es payé pour ton calendrier de l'avent :D
c'est tout bête ton truc des tableaux relationnels entre les images
et la date :p ( je m'en suis tapé en flash en javascript en php :D )

Les photos n'ont pas toutes la meme dimension, je crois... est-ce dommageable... ou important?

oui pour la présentation
 

fredmac75

Membre d’élite
Club MacG
14 Juillet 2003
1 415
127
50
Le Mans
www.km-spirit.com
Salut
1- Demander de l'aide est tout à fait légitime. Faire faire un travail à partir de zero c'est autre chose.
2 - Si le code se destine à un site commercial pourquoi ne pas proposer une offre d'emploi dans ce sens.
3 - il y a sur ce forum des gens (très) compétents (dont je ne fais pas parti malheureusement) qui se feront un plaisir de te créer le code ad-hoc contre rétribution si la condition 2 est remplie.
 

tatouille

Vétéran
1 Juin 2004
5 174
494
Stanford CA
Salut
1- Demander de l'aide est tout à fait légitime. Faire faire un travail à partir de zero c'est autre chose.
2 - Si le code se destine à un site commercial pourquoi ne pas proposer une offre d'emploi dans ce sens.
3 - il y a sur ce forum des gens (très) compétents (dont je ne fais pas parti malheureusement) qui se feront un plaisir de te créer le code ad-hoc contre rétribution si la condition 2 est remplie.

:D pour 500 euros (liquide) on te fait le moteur + DA
 

Mediterranneo

Membre confirmé
10 Mai 2005
387
11
40
Bonjour!

Oui, mon site est commercial. Mais trop petit pour avoir un webmaster a long terme et regulier. Comme je le disais, je possede de toutes petites connaissances en HTML, ce qui me permet de me diversifier de mon quotidien (graphisme).

C'est pourquoi j'aime egalement apprendre de nouvelles choses.

Je suis ok de payer un Webmaster par "a coups" / quand mes connaissances sont limitees et que je ne peux pas aller plus loin.

D'une part, par la logique des choses, il me semble que les images doivent etre nommees inteligemment, avec une suite de numeros..."

image1.jpg
image2.jpg
etc.

Enfin, peut-etre que cela n'a aucune importance.

Mon espace hebergement:

» libre 222.18 Mo disponible» utilisé 77.82 Mo soit 25.9%

Version PHP 4 et 5

Bref, je suis ok de payer pour cette intervention, donc si vous pouvez me faire une offre dans le forum ou par MP, j'etudierai le tout. Mais cela devra etre imperativement pret AVANT le 1er decembre.

Autrement, je le ferai manuellement :)

J'attends vos propositions, A+
 

Nihao

Membre junior
19 Août 2003
61
10
www.nosenzor.fr
Sans base de donnee c'est facile.
Si toutes tes images sont dans un repertoire unique AllImages tu vas inserer le code suivant dans ta page html:
Bloc de code:
<?php
$NbAff=5; //Nombre d'images au hasard a afficher
$rep = "./AllImages/"; // C'est le chemin relatif ou sont toutes tes images
// On charge dans un tabeau toutes les images
$dir = opendir($rep);
$i=0;
	while ($f = readdir($dir))
	{
	
		if (is_file($rep.$f) && ! eregi('.DS_Store', $f) ) // test si c'est un fichier
		{			
			$filenames[$i]= $rep.$f;
		}

	}

// on en choisit NbAff au hasard et on les affiche

for($j=0;$j<$NbAff;$j++)
{
//le hasard
$affimage=rand(1,count($filenames));
echo "<img src=\"".$filenamess[$affimage]."\"  />";
}
?>

Dis moi si ca marche, j'ai pas teste mais j'ai copié collé du code que j'utilise.
Bonne chance.
 

p4bl0

Membre d’élite
Club MacG
12 Juillet 2004
4 772
425
31
$PWD
p4bl0.net
Sans base de donnee c'est facile.
Si toutes tes images sont dans un repertoire unique AllImages tu vas inserer le code suivant dans ta page html:
Bloc de code:
<?php
$NbAff=5; //Nombre d'images au hasard a afficher
$rep = "./AllImages/"; // C'est le chemin relatif ou sont toutes tes images
// On charge dans un tabeau toutes les images
$dir = opendir($rep);
$i=0;
	while ($f = readdir($dir))
	{
	
		if (is_file($rep.$f) && ! eregi('.DS_Store', $f) ) // test si c'est un fichier
		{			
			$filenames[$i]= $rep.$f;
		}

	}

// on en choisit NbAff au hasard et on les affiche

for($j=0;$j<$NbAff;$j++)
{
//le hasard
$affimage=rand(1,count($filenames));
echo "<img src=\"".$filenamess[$affimage]."\"  />";
}
?>

Dis moi si ca marche, j'ai pas teste mais j'ai copié collé du code que j'utilise.
Bonne chance.
t'as oubli&#233; closedir($dir); :rateau:

en plus c'est pas cool pour le serveur, parce qu'un array avec 2000 valeurs... :rolleyes:

en plus chaques valeurs contient './AllImages/'... pas la peine non plus :rolleyes:

enfin y a moyen de faire un truc 100 000 fois plus optimis&#233; :zen:
 

sylver

Membre confirmé
23 Septembre 2003
343
39
t'as oublié closedir($dir); :rateau:

en plus c'est pas cool pour le serveur, parce qu'un array avec 2000 valeurs... :rolleyes:

en plus chaques valeurs contient './AllImages/'... pas la peine non plus :rolleyes:

enfin y a moyen de faire un truc 100 000 fois plus optimisé :zen:

surtout que le besoin, c'est que les cinq images changent chaque jour. Donc il faut choisir 5 images aléatoirement au début de la journée, puis garder ces 5 images toutes la journée, et le lendemain en choisir 5 autres aléatoirement.

Algorithme proposé :

- récupérer la date de modification du fichier qui stocke les images
- si cette date est égale à la date actuelle
- - ne rien faire
- sinon
- - choisir aléatoirement cinq images dans la liste
- - inscrire les noms de ces cinq images dans le fichier
- lire les noms des images dans le fichier
- afficher les images
 

Nihao

Membre junior
19 Août 2003
61
10
www.nosenzor.fr
Vous etes sympas vous ...
personne n'a rien proposé à part moi.
Je trouve que c'est un bon départ. Aprés, bien sur, on peut optimiser, par exemple stocker le tableau au lieu de le reconstruire, etc ...
C'est pas la peine de décrire un algo si notre collègue ne connait rien en html ni en php. Moi je lui proposait un truc qui s'en approchait avec un simple copié-collé.
On m'y prendra plus.
 

p4bl0

Membre d’élite
Club MacG
12 Juillet 2004
4 772
425
31
$PWD
p4bl0.net
surtout que le besoin, c'est que les cinq images changent chaque jour. Donc il faut choisir 5 images al&#233;atoirement au d&#233;but de la journ&#233;e, puis garder ces 5 images toutes la journ&#233;e, et le lendemain en choisir 5 autres al&#233;atoirement.

Algorithme propos&#233; :

- r&#233;cup&#233;rer la date de modification du fichier qui stocke les images
- si cette date est &#233;gale &#224; la date actuelle
- - ne rien faire
- sinon
- - choisir al&#233;atoirement cinq images dans la liste
- - inscrire les noms de ces cinq images dans le fichier
- lire les noms des images dans le fichier
- afficher les images
oui le syst&#232;me de cache &#233;tait inclu dans le 100 000 fois plus optimis&#233; :)

Bloc de code:
<?php
if (filemtime('./5img.inc.html') < time()-86400) {
    $imgrep = './images/';
    $images = scandir($imgrep, 1);
    $image = array();
    for ($i=0; $i < 5; $i++) {
        $image[$i] = $images[rand(1,count($images)-2)];
    }
    $img5 = '<div id="img5">';
    for ($i=0; $i < 5; $i++) {
        $img5 .= '<img src="images/'.$image[$i].'" alt="'.$image[$i].'" />';
    }
    $img5 .= '</div>';
    file_put_contents('./5img.inc.html', $img5);
}
include('./5img.inc.html');
?>

ce code suppose qu'il n'y ai que des image (pas de .DS_Store ou de dossier) dans le repertoire images. Les image peuvent porter un nom significatif, ce qui est pratique.

Par contre il se peut (mais il y a tr&#232;s peu de chance que cela arrive si le r&#233;pertoire contient 2000 images) que la fonction rand retourne 2 fois le m&#234;me combre et donc que deux image soit identique
 

p4bl0

Membre d’élite
Club MacG
12 Juillet 2004
4 772
425
31
$PWD
p4bl0.net
Vous etes sympas vous ...
personne n'a rien proposé à part moi.
Je trouve que c'est un bon départ. Aprés, bien sur, on peut optimiser, par exemple stocker le tableau au lieu de le reconstruire, etc ...
C'est pas la peine de décrire un algo si notre collègue ne connait rien en html ni en php. Moi je lui proposait un truc qui s'en approchait avec un simple copié-collé.
On m'y prendra plus.
Ha ben j'avais pas vu que tu avais post&#233; entre temps... ben voil&#224; une r&#233;ponse &#224; ta demande.

J'utilise aussi un array (g&#233;n&#233;r&#233; par scandir()) qui contient tout les fichiers du dossier, mais je crois qu'on ne peut pas faire mieux &#224; moins d'appeler ses images avec un nom du genre img0001.jpg, img0002.jpg...


:zen:
 

Mediterranneo

Membre confirmé
10 Mai 2005
387
11
40
Bonjour,

Je viens de commencer la cr&#233;ation de ma page.

Petite interrogation:

Tout est centr&#233; dans mes pr&#233;sentations, les logo, les photos, les textes, etc.

Par-exemple:

X
XXXX
XX
XXXXXX
XXX​

l&#224; o&#249; j'ai "XXX" (une photo) j'aimerais coller une banni&#232;re &#224; gauche et/ou &#224; droite:

II XXX II​

Mais le II fait scroller l'image XXX et la pr&#233;sentation n'est pas top.

Quel est l'outil, avec GoLive, de sorte &#224; ins&#233;rer un &#233;l&#233;ment &#224; gauche et/ou &#224; droite - sans pour autant toucher les autres &#233;l&#233;ments centr&#233;s: XXX

Je ne sais pas si c'est assez clair ;) ? Car le "II" est tr&#232;s haut et trouver le moyen de disposer de cette pr&#233;sentation me permettrait de mettre un peu plus d'&#233;l&#233;ments &#224; gauche et &#224; droite...

Merci pour votre coup de main...

Bon dimanche :)