[RESOLU] Image qui change toutes les semaine

Petit nouveau ! | 4 Messages

10 août 2009, 18:24

Bonjour,

Voila je suis débutant en php et je cherche a faire changer une image toutes les semaine automatiquement.

Merci d'avance . :wink:

Patrick2A
Invité n'ayant pas de compte PHPfrance

10 août 2009, 18:42

Qui changerait en fonction de quoi ??
Soyez plus précis...

Petit nouveau ! | 4 Messages

10 août 2009, 18:51

Simplement 1 semaine sur 2 l'image change ( donc en fonction du temp passé soit ici 7 jours ou 604 800 secondes .

ViPHP
fab
ViPHP | 2657 Messages

10 août 2009, 19:36

La fonction date ( http://fr.php.net/date ) te permet de retourner le numéro de la semaine avec l'argument W donc après tu regardes si cette semaine est paire ou impaire et en fonction tu affiches une image :)
Ainsi tu auras une image qui change une semaine sur deux :)
Seul l'intelligent a le pouvoir de se trouver con
try { work(); } catch(FlemmeExeption $e) { sleep(84600); }

Petit nouveau ! | 4 Messages

10 août 2009, 19:56

Oui si il ni a rien de mieux je vais prendre ça
Modifié en dernier par sc62 le 10 août 2009, 21:51, modifié 1 fois.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

10 août 2009, 20:48

Et si tu ajoutais le numéro de la semaine et l'année ?
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

ViPHP
AB
ViPHP | 5818 Messages

10 août 2009, 21:01

Tu peux aussi enregistrer dans un fichier texte (avec file_put_contents() et file_get_contents() par exemple) le numéro de la semaine et dès qu'il change, enregistrer ce nouveau numéro et en même temps changer ton image.

ViPHP
ViPHP | 2291 Messages

10 août 2009, 21:25

Ou peut-être jouer sur chaque Lundi :?:
//-->Zone horraire utiliser ici Europe/Paris.--//
date_default_timezone_set('Europe/Paris');
//-->Ici on demande le Lundi avant (last Monday) du mois .--//
$Last_lundi =  'Lundi passé nous étions le : '.strftime('%d-%m-%Y', strtotime('last Monday')).'.';
//-->Ici on demande le prochain Lundi (next Monday) du mois .--//
$Next_Lundi =  'Le prochain Lundi est le : '.strftime('%d-%m-%Y', strtotime('next Monday')).'.';
:wink:
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

Mammouth du PHP | 1511 Messages

10 août 2009, 21:26

Tu as besoin d'une image différente pour chaque semaine de l'année ?

Petit nouveau ! | 4 Messages

10 août 2009, 22:03

Je vait utiliser la solution des semaines simple a mettre en oeuvre et juste peu etre un probleme au mois de decembre mais bon ...je verfifiré le temp venu ..

Merci à vous .
<?
$nombre = date('w');

    if ($nombre%2 == 0)
    {
        echo '<img src="semaine1.gif" width="50" height="50" alt="Semaine 1">';
    }
    else
    {
        echo '<img src="semaine2.gif" width="50" height="50" alt="Semaine 2">';
    }
?>

Mammouth du PHP | 1511 Messages

10 août 2009, 22:09

J'y pense, la 53ème semaine ne pose aucun problème dans ton cas.
Si tu fais une alternance semaine paire semaine impaire, il n'y a aucun problème.
La 53ème demaine de l'année et la 1ère de l'année suivante n'en forment qu'une et les deux sont impaires, donc aucun problème de ce coté là.
Par contre, en cas de 52semaines, tu auras ta dernière et ta première semaine très raccourcis, mais de peu.

ViPHP
AB
ViPHP | 5818 Messages

11 août 2009, 01:29

Il me semble que tu utilises "w" (minuscule) qui indique les jours, à la place de "W" qui indique les semaines.

Sinon en suivant mon idée pour changer d'images toutes les semaines (ou tous les jours) en enregistrant les données dans un fichier texte, on peut faire ça.
$images = array('image1.gif', 'image2.gif', 'image3.gif', 'image4.gif');

$semaine = date('W');

$tab_controle = @unserialize(@file_get_contents('affichage_image.txt'));

$semaine_ex = isset($tab_controle['semaine'])? $tab_controle['semaine'] : 0;
$index = isset($tab_controle['index']) && array_key_exists($tab_controle['index'],$images)? $tab_controle['index'] : 0;

if ($semaine_ex != $semaine) 
	{
		$index = isset($tab_controle['index'])? $tab_controle['index'] + 1 : 0;
		$tab_controle['index'] = array_key_exists($index,$images)? $index : 0;
		$tab_controle['semaine'] = $semaine;
		file_put_contents('affichage_image.txt',serialize($tab_controle));
	}

if (isset($images[$index])) echo '<img src="'.$images[$index].'" width="50" height="50" alt="Image de la semaine">';
L'avantage, en plus de résoudre le problème des semaines de début d'année, c'est qu'en mémorisant l'index de l'image en cours on peut utiliser et faire tourner une quantité "illimitée" d' images.

LeRédac
Invité n'ayant pas de compte PHPfrance

05 août 2014, 20:07

Juste un BIG merci AB, ça ma éviter de me casser la tête pendant des heures ;-)

LeRédac
Invité n'ayant pas de compte PHPfrance

05 août 2014, 20:08

Juste un BIG merci AB, ça ma éviter de me casser la tête pendant des heures ;-)
"évité" ;-)