AFFICHAGE AUTOMATIQUE PERSONNALISABLE À PARTIR D'UNE DATE DONNER

cs_emilia123 Messages postés 122 Date d'inscription mercredi 19 décembre 2001 Statut Membre Dernière intervention 5 janvier 2009 - 30 oct. 2012 à 09:08
cs_emilia123 Messages postés 122 Date d'inscription mercredi 19 décembre 2001 Statut Membre Dernière intervention 5 janvier 2009 - 30 oct. 2012 à 09:08
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/54684-affichage-automatique-personnalisable-a-partir-d-une-date-donner

cs_emilia123 Messages postés 122 Date d'inscription mercredi 19 décembre 2001 Statut Membre Dernière intervention 5 janvier 2009
30 oct. 2012 à 09:08
Bonjour,

A la lecture du code, il y a des petits éléments qui pourraient être optimisés :

1) tu compares des jours/mois/années (dans le cas ou $nb_joursOk=false) ou des numéros de jour (dans le cas ou $nb_joursOk=true) mais l'affichage s’arrête dès la fin du mois.
Il pourrait etre préférable de travailler avec "datediff" et des vraies dates.

2) il y a un peu trop de mélange de la logique et de l'affichage. Il ne faudrait pas mettre de écho au milieu du code, simplement préparer une variable texte contenant le message, et l'afficher une seule fois à la fin du code.
l'idéal serait d'avoir les textes (ex les messages d'erreur) regroupé à un seul endroit pour simplifier la personnalisation.
Si tu y arrives, le principal intérêt sera que ton code pourra être déplacé dans une fonction autonome, et que seul le résultat final de cette fonction (renvoyé par le "return") sera intéressant.

3) il y a trop d'enchainement de "elseif"
Dans le fichier "date.php" les tests sur les mois/jours sont fait sur la base de "if, elseif" mais il serait beaucoup plus simple et plus logique de travailler à base de "switch, case"

4) petite erreur de code dans le fichier date.php
Tes comparaisons sont faites sur une chaine sans simple ou double quote
if($mois_complet == Jan)
Ici Jan n'est pas une variable, ni du texte normal.
Le moteur PHP est obligé de corriger cette erreur en considérant que tu voulais dire "Jan", ce qui va générer un warning et du temps de perdu pour le moteur PHP.

5) problème dans la logique de ton fichier construction_fichier.php
Tu fabrique à chaque fois un fichier (valeur_date.txt) contenant le texte à afficher, puis tu le fermes, puis tu le ré-ouvres pour en lire le contenu et le transmettre à l'internaute. Cette écriture n'a pas d’intérêt et surtout si il y a beaucoup d'internautes cela va générer de gros blocage car tous les internautes vont attendre que PHP puisse récupérer la main sur ce fichier. Pourquoi ne pas simplement afficher le contenu de la variable, au lieu de passer par l'écriture/lecture d'un fichier?

Bonne continuation.

EM.
Rejoignez-nous