IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Modification et amélioration boucles for


Sujet :

Langage PHP

  1. #61
    Membre du Club
    Femme Profil pro
    particulier
    Inscrit en
    juillet 2020
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : particulier

    Informations forums :
    Inscription : juillet 2020
    Messages : 50
    Points : 54
    Points
    54
    Par défaut
    Pour un meilleur résultat à l'affichage et de meilleures performances, tu peux faire une structure html avec liens css et js qui reçoit les data en json, par défaut le mois année en cours ou comme déjà suggéré les 15 jours avant et après le jour d'hui, et sur demande (ajax) le mois et l'année au choix.
    Ma mauvaise foi me fait dire que nous serons débarrassés du covid avant que tu aies un résultat final

  2. #62
    Membre du Club
    Femme Profil pro
    particulier
    Inscrit en
    juillet 2020
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : particulier

    Informations forums :
    Inscription : juillet 2020
    Messages : 50
    Points : 54
    Points
    54
    Par défaut calcul du jour de Pâques
    A propos de Pâques, provenant de la toile, j'ai testé entre eux 2 différents calculs en PHP et une liste, avec easter_date et j'ai pas mal d'inégalité...
    Le pire c'est que là où c'est juste pour certains, c'est faux pour d'autres et pas toujours les même en même temps !!!
    C'est principalement entre 1970 et 1981.
    Cette formule est souvent fausse : https://phpsources.net/code/php/date-heure/932_date-de-paques //Algorithme de Oudin
    Sinon par exemple comparez pour 1980 entre easter_date et
    http://www.informatix.fr/tutoriels/p...ais-en-php-137 // script php
    ou des "listes" car je ne sais comment elles sont obtenues (copiées depuis un autre site, provenant de quel algorithme, recopiées depuis des calendriers papier)
    http://www.zpag.net/Calendrier/paques.htm
    ou
    https://www.calagenda.fr/fete-paques-1981.html

    Avez-vous d'autres exemples où est-ce ma version 32bit de mon windows ?

    Il y a de nombreux sujets sur ce forum, et je ne les ai pas lus?

  3. #63
    Membre chevronné
    Avatar de Droïde Système7
    Homme Profil pro
    Inscrit en
    septembre 2003
    Messages
    2 088
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : septembre 2003
    Messages : 2 088
    Points : 1 812
    Points
    1 812
    Par défaut
    Suis-je aussi transparent ?

    J'ai presque ma version (simplifiée) terminée. Mais vaut mieux pas te la montrer

    Si seulement j'avais plus de temps à consacrer assis devant ma bécane !

    Mais ensuite si j'ai un peu de temps, j'apprécie beaucoup de revenir afin d'améliorer le code et mes connaissances.

    C'est ainsi que je reviens régulièrement relire tous les messages reçus des différents intervenants.

    Au sujet des fêtes mobiles, ce n'est pas ce qui me pose souci ; surtout des années passées...

    Le script en question, après modif, répond à mes attentes tout simplement.

    Merci de tes nouvelles idées Mais manque la synchro avec une horloge atomique

    Si, si, tu as de bonnes idées également : j'aime bien chambrer

    DS7

  4. #64
    Expert confirmé Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    mars 2009
    Messages
    2 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : mars 2009
    Messages : 2 243
    Points : 4 863
    Points
    4 863
    Par défaut
    Algorithme de Butcher-Meeus pour le calcul du dimanche de Pâques (d'après Wikipédia):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    function idiv($dividend, $divisor) {
        return [intdiv($dividend, $divisor), $dividend % $divisor];
    }
     
    function butcherMeeus($year) {
        $n = $year % 19;
        [$c, $u] = idiv($year, 100);
        [$s, $t] = idiv($c, 4);
        $p = intdiv($c + 8, 25);
        $q = intdiv($c - $p + 1, 3);
        $e = ( 19*$n + $c - $s - $q + 15 ) % 30;
        [$b, $d] = idiv($u, 4);
        $L = ( 2*$t + 2*$b - $e - $d + 32 ) % 7;
        $h = intdiv($n + 11*$e + 22*$L, 451);
        [$m, $j] = idiv($e + $L - 7*$h + 115, 31);
        return new DateTimeImmutable("$year-$m-$j");
    }
    Brachygobius xanthozonus
    Ctenobrycon Gymnocorymbus

  5. #65
    Membre du Club
    Femme Profil pro
    particulier
    Inscrit en
    juillet 2020
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : particulier

    Informations forums :
    Inscription : juillet 2020
    Messages : 50
    Points : 54
    Points
    54
    Par défaut
    Citation Envoyé par Droïde Système7 Voir le message
    Au sujet des fêtes mobiles, ce n'est pas ce qui me pose souci ; surtout des années passées...
    Si un algo donne des erreurs, même sur des dates passées (il peut tout aussi bien en donner sur d'autres dates futures), pour moi il n'est pas fiable.
    Raison pour laquelle, dans la mesure du possible, j'analyse, comprends et teste (dans un maximum de configuration - un jeu d'essai) les scripts que j'ai pu trouver où que l'on me donne, avant de l'utiliser en toute confiance.

    Citation Envoyé par Droïde Système7 Voir le message
    Merci de tes nouvelles idées Mais manque la synchro avec une horloge atomique
    C'est possible en demandant à https://www.ntppool.org , plus d'info sur http://www.ntp.org/

  6. #66
    Membre chevronné
    Avatar de Droïde Système7
    Homme Profil pro
    Inscrit en
    septembre 2003
    Messages
    2 088
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : septembre 2003
    Messages : 2 088
    Points : 1 812
    Points
    1 812
    Par défaut
    Citation Envoyé par pas-douée Voir le message
    Si un algo donne des erreurs, même sur des dates passées (il peut tout aussi bien en donner sur d'autres dates futures), pour moi il n'est pas fiable.
    Raison pour laquelle, dans la mesure du possible, j'analyse, comprends et teste (dans un maximum de configuration - un jeu d'essai) les scripts que j'ai pu trouver où que l'on me donne, avant de l'utiliser en toute confiance.


    C'est possible en demandant à https://www.ntppool.org , plus d'info sur http://www.ntp.org/
    Pour l'horloge atomique, je déconnais hein

    Ceci dit, tu vas commencer à me faire douter de la class en question ou divers scripts déclinés sur le Net.

    @ CosmoKnacki : Auquel cas, tu me donnes la solution imparable !



    DS7

  7. #67
    Membre chevronné
    Avatar de Droïde Système7
    Homme Profil pro
    Inscrit en
    septembre 2003
    Messages
    2 088
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : septembre 2003
    Messages : 2 088
    Points : 1 812
    Points
    1 812
    Par défaut


    Citation Envoyé par pas-douée Voir le message
    A propos de Pâques, provenant de la toile, j'ai testé entre eux 2 différents calculs en PHP et une liste, avec easter_date et j'ai pas mal d'inégalité...
    Le pire c'est que là où c'est juste pour certains, c'est faux pour d'autres et pas toujours les même en même temps !!!
    C'est principalement entre 1970 et 1981.
    En pensant à toi et après d'autres tests sur des dates relativement lointaines, je suis resté scotché en maugréant contre mktime :

    DOC
    L'année, peut être sur deux ou quatre chiffres, avec des valeurs allant de 0 à 69, correspondant au valeur 2000 à 2069 et 70 à 100, correspondant au valeur 1970 à 2000. Sur les systèmes où time_t un entier signé sur 32bits, ce qui est le plus courant de nos jours, la période valide pour year est quelque part près de 1901 et 2038. Cependant, avant PHP 5.1.0, cette intervalle était limitée de 1970 à 2038 sur quelques systèmes (i.e. Windows).
    Question comme ça en passant :

    Et si l'on utilise un mktime par exemple sur l'an 2039 ?

    J'ai bien lu et noté que "cet intervalle était limitée de 1970 à 2038 sur quelques systèmes (i.e. Windows). "

    En attendant sur ma bécane, un warning est émis si l'année est > 2038 !!!

    Hein ? ah oui avec ce COVID qui nous tombe sur le museau, nous ne sauront jamais

    DS7

  8. #68
    Membre du Club
    Femme Profil pro
    particulier
    Inscrit en
    juillet 2020
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : particulier

    Informations forums :
    Inscription : juillet 2020
    Messages : 50
    Points : 54
    Points
    54
    Par défaut
    Citation Envoyé par pas-douée Voir le message
    .../... mais en fonction du système, du langage, de la version et je ne sais quoi, il y a parfois des surprises entre les valeurs de false (<=0 ou 0 ou null) et true (1 ou != O ou > 0) .../...
    Citation Envoyé par pas-douée Voir le message
    .../...
    j'ai testé entre eux 2 différents calculs en PHP et une liste, avec easter_date et j'ai pas mal d'inégalité...
    .../...
    Avez-vous d'autres exemples où est-ce ma version 32bit de mon windows ?
    .../...
    Pour tout ce qui concerte de près ou de loin le travail sur le temps, il fait bien lire les explications sur https://www.php.net/manual/fr/
    Par exemple sur https://www.php.net/manual/fr/function.mktime.php la rubrique year

  9. #69
    Membre chevronné
    Avatar de Droïde Système7
    Homme Profil pro
    Inscrit en
    septembre 2003
    Messages
    2 088
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : septembre 2003
    Messages : 2 088
    Points : 1 812
    Points
    1 812
    Par défaut
    Bonsoir,

    C'est que j'ai écumé php.net et autres, et je n'en sais pas plus

    Quid après 2039 en utilisant mktime ?

    DS7

  10. #70
    Membre du Club
    Femme Profil pro
    particulier
    Inscrit en
    juillet 2020
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : particulier

    Informations forums :
    Inscription : juillet 2020
    Messages : 50
    Points : 54
    Points
    54
    Par défaut
    Dans quel environnement développes-tu ?

    Je suis encore sous xp, version 32bit pro, je vais migrer sous la version 64.
    Pour mes besoins et mes finances, ça me contente.

  11. #71
    Membre chevronné
    Avatar de Droïde Système7
    Homme Profil pro
    Inscrit en
    septembre 2003
    Messages
    2 088
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : septembre 2003
    Messages : 2 088
    Points : 1 812
    Points
    1 812
    Par défaut
    Idem que toi, sauf sous Vista 32 bits.

    En plus sur machine trop puissante, ça risque de fausser le rendu chez certains utilisateurs de programmes compilés.

    Aussi parce que migrer sous w10... je n'aime pas que l'on collecte obligatoirement mes données...

    DS7

  12. #72
    Membre du Club
    Femme Profil pro
    particulier
    Inscrit en
    juillet 2020
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : particulier

    Informations forums :
    Inscription : juillet 2020
    Messages : 50
    Points : 54
    Points
    54
    Par défaut
    Regarde si ton processeur est 64 bits, pour passer sous vista 64 et mettre une version 64 de php => plus de limite après 2037.
    Mais je ne pourrais pas t'aider.

  13. #73
    Membre chevronné
    Avatar de Droïde Système7
    Homme Profil pro
    Inscrit en
    septembre 2003
    Messages
    2 088
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : septembre 2003
    Messages : 2 088
    Points : 1 812
    Points
    1 812
    Par défaut
    Ah merci, non en fait ma demande était simplement : est-ce que cela dépend exclusivement des anciennes versions Windows, par exemple < à Windows 7.

    Ceci confirmera que le "bug" du mktime est corrigé au niveau OS Windows

    Si un heureux possesseur d'une de ces folles machines peut nous renseigner

    DS7

    Edit : En y pensant bien, ce ne serait pas l'OS, mais le navigateur ! Voire la version OS du serveur.

  14. #74
    Membre du Club
    Femme Profil pro
    particulier
    Inscrit en
    juillet 2020
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : particulier

    Informations forums :
    Inscription : juillet 2020
    Messages : 50
    Points : 54
    Points
    54
    Par défaut
    Si tu tournes en 32 bit, c'est ta machine qui est limitée.
    Les calculs sur le temps se font en secondes depuis le 01/01/1970. Or le plus grand nombre possible sur 32 bit correspond au nombre de secondes entre le 01/01/1970 et 2038.
    Si tu passes à vista 64 bit ou seven 64 bit (avec des programmes en 64 bit et php 7) tu n'auras plus cette limite.

  15. #75
    Membre chevronné
    Avatar de Droïde Système7
    Homme Profil pro
    Inscrit en
    septembre 2003
    Messages
    2 088
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : septembre 2003
    Messages : 2 088
    Points : 1 812
    Points
    1 812
    Par défaut
    Merci de penser à moi

    Mais tout ça n'est pas logique.

    Que viens faire mon OS dans le moulinage serveur ?

    Tout ça se passe côté serveur au moment de sa compil et mon Vista 32 n'a rien à faire là-dedans non ?

    J'ai prévu d'ouvrir un thread à ce sujet

    Il serait plus logique de penser que c'est la bécane sur le serveur qui... n'est pas en 64 bits.

    @ suivre,

    DS7

  16. #76
    Membre du Club
    Femme Profil pro
    particulier
    Inscrit en
    juillet 2020
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : particulier

    Informations forums :
    Inscription : juillet 2020
    Messages : 50
    Points : 54
    Points
    54
    Par défaut
    PHP n'est pas compilé mais interprété, mais c'est secondaire.
    ou https://www.startpage.com/do/dsearch...tVersion=1.3.0
    Parce que tu développes sur le serveur distant ?

    As tu fait un phpinfo() pour vérifier ton environnement ? https://www.hostinger.fr/tutoriels/c...icher-phpinfo/ ou https://www.startpage.com/do/dsearch...tVersion=1.3.0

  17. #77
    Membre expérimenté Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    mai 2004
    Messages
    1 120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : mai 2004
    Messages : 1 120
    Points : 1 640
    Points
    1 640
    Par défaut
    Bonjour

    Citation Envoyé par pas-douée Voir le message
    PHP n'est pas compilé mais interprété, mais c'est secondaire.
    Hors sujet mais ... oui il est interprété ... mais pas toujours.
    Tu as la notion de opcache qui est le résultat d'une exécution PHP (interprété donc) mais dont le dernier run est caché (binaire). opcache permet alors d'aller bien plus vite puisque le code est du code machine.
    Christophe (cavo789)
    Mes scripts Open Source : https://github.com/cavo789

  18. #78
    Membre chevronné
    Avatar de Droïde Système7
    Homme Profil pro
    Inscrit en
    septembre 2003
    Messages
    2 088
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : septembre 2003
    Messages : 2 088
    Points : 1 812
    Points
    1 812
    Par défaut
    J'avais lu que lors d'une requête server PHP, le code était compilé sur le server avant d'être interprété et ensuite renvoyé au client. Est-ce faux ?

    @ pas-douée :

    Franchement je ne pige pas trop le rapport avec ma question finale mktime. Est-ce dû à une erreur d'interprétation de mon message précédent ?

    Oui j'ai toujours, suivant server utilisé son php(info) sous le coude.

    Je peux aussi t'affirmer qu'entre certaines indications et la réalité ; ça fait deux. Je pourrais citer des hébergeurs bons marchés

    @ Christophe :

    Non, tes interventions sont toujours intéressantes !

    Ceci dit, je ne sais toujours pas de quel process ce fichu mktime décide qu'il débraillera en 2039 ou non.

    Est-ce dû exclusivement à la config server ?


    DS7

  19. #79
    Nb
    Nb est déconnecté
    Membre averti
    Profil pro
    Inscrit en
    décembre 2003
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : décembre 2003
    Messages : 116
    Points : 329
    Points
    329
    Par défaut
    Citation Envoyé par Droïde Système7 Voir le message
    J'avais lu que lors d'une requête server PHP, le code était compilé sur le server avant d'être interprété et ensuite renvoyé au client. Est-ce faux ?
    PHP n'est pas compilé. De manière schématique l’exécution d'un code PHP c'est :
    - transformation en opcode
    - execution de l'opcode par la machine virtuelle PHP ( et éventuellement mise en cache d'opcode)

    Ca devrait un peu changer en PHP8 et l'apparition du compilateur JIT qui pourrait s'occuper de réellement compiler certains "bout" d'opcode qui pourront ensuite être exécutés par la machine hôte sans passer par la machine virtuelle PHP.

    Pour la fin de ta phrase ne suis pas sur de bien comprendre, mais au cas où : une "requete php" elle est interprétée, puis exécutée et elle renvoi le résultat de l’exécution. C'est pour ca qu'on dit que c'est un langage coté serveur : à aucun moment le code PHP ne s'execute sur le client, jamais.

  20. #80
    Membre chevronné
    Avatar de Droïde Système7
    Homme Profil pro
    Inscrit en
    septembre 2003
    Messages
    2 088
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : septembre 2003
    Messages : 2 088
    Points : 1 812
    Points
    1 812
    Par défaut
    Hello Nb,

    Merci de t'être mouillé à répondre à ma question

    Mais en principe, sans parler du nouveau PHP8 ; opcode peut aussi commander directement la compil sur certains bouts de codes, non ?

    Houlà, mes premières armes info étaient en assembleur, mais c'est très loin ça.

    DS7

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2016] amélioration boucle for trop longue
    Par Phenicia77 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 15/09/2020, 18h50
  2. Modification condition dans une boucle for
    Par fred61 dans le forum Débuter
    Réponses: 14
    Dernier message: 06/08/2013, 16h39
  3. [Batch] Modification des paramètres d'entrée dans une boucle FOR
    Par reppier dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 15/06/2009, 16h23
  4. Pb de modification de liste dans une boucle for
    Par schnito dans le forum Général Python
    Réponses: 5
    Dernier message: 20/04/2007, 11h27
  5. [langage] boucle "for" modification du pas
    Par K-ZimiR dans le forum Langage
    Réponses: 4
    Dernier message: 29/04/2004, 12h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo