Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1671 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Fonction compatible php 5.5.12 mais non-compatible php 5.3.3 pq?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Fonction compatible php 5.5.12 mais non-compatible php 5.3.3 pq?

n°2247748
recep
Posté le 08-01-2015 à 13:59:15  profilanswer
 

Bonjour,
 
Voici une fonction que j'utilise et elle fonctionne très bien quand je l'utilise en local sur mon serveur WAMPSERVER (version PHP 5.5.12).
 

Code :
  1. function getAll($year){
  2.             $r = array();
  3.             $date = new DateTime($year.'-01-01');
  4.             while($date->format('Y') <= $year){
  5.                 $y = $date->format('Y');
  6.                 $m = $date->format('n');
  7.                 $d = $date->format('j');
  8.                 $w = str_replace('0','7', $date->format('w'));
  9.                 $r[$y][$m][$d] = $w;
  10.                 $date->add(new DateInterval('P1D'));
  11.             }
  12.             return $r;
  13. }


mais lorsque je l'utilise en direct sur mon site web ça ne marche pas, par contre la version de PHP est 5.3.3.
Est-ce que cette différence de version peut empêcher le bon fonctionnement de cette fonction??? Merci !

mood
Publicité
Posté le 08-01-2015 à 13:59:15  profilanswer
 

n°2247757
rufo
Pas me confondre avec Lycos!
Posté le 08-01-2015 à 15:27:27  profilanswer
 

T'as quoi comme msg d'erreur et à quelle ligne ?
 
Perso, j'aurais opté pour DateInterval() qui pose souci mais la doc indique que c'est bon à partir de php 5.3.
 
Pour info, quand on développe, on essaye d'être au plus prêt de la version de prod sur sa station de dév. Perso, je mets une version un peu en-dessous de celle de prod comme ça, j'ai très rarement des surprises du fait qu'une version supérieure est rétro-compatible avec une version un peu inférieure. :o


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2247760
recep
Posté le 08-01-2015 à 15:43:18  profilanswer
 

rufo a écrit :

T'as quoi comme msg d'erreur et à quelle ligne ?
 
Perso, j'aurais opté pour DateInterval() qui pose souci mais la doc indique que c'est bon à partir de php 5.3.
 
Pour info, quand on développe, on essaye d'être au plus prêt de la version de prod sur sa station de dév. Perso, je mets une version un peu en-dessous de celle de prod comme ça, j'ai très rarement des surprises du fait qu'une version supérieure est rétro-compatible avec une version un peu inférieure. :o


Salut,
 
je n'ai pas de message d'erreur. à l'endroit où je fait appelle à cette fonction c'est ici :
je viens d'ajouter les 2 "print_r()" et "echo" pour avoir un aperçu. j'ai l'impression que je n'ai pas de retour de ma fonction "getAll()"

Code :
  1. ....
  2. <?php
  3. require('outils/config_rdq.php');
  4. require('outils/date.php');
  5. $date = new Date();
  6. $year = date('Y');
  7. $events = $date->getEvents($year);
  8. print_r($events);
  9. $dates = $date->getAll($year);
  10. echo '<br />';
  11. print_r($dates);
  12. ?>
  13. <div class="carre">
  14.     <div class="periods">
  15.         <div class="year"><?php echo $year; ?></div>
  16.         <div class="months">
  17.             <ul>
  18. ....


 
le print_r($events); m'affiche bien le contenu de la variable
mais par contre pour print_r($dates) je n'ai rien qui s'affiche et je n'ai plus rien sur ma page ensuite...

n°2247772
kokola
!!!
Posté le 08-01-2015 à 17:13:59  profilanswer
 

Citation :

mais par contre pour print_r($dates) je n'ai rien qui s'affiche et je n'ai plus rien sur ma page ensuite...


 
entoures ton code d'un try catch pour voir :)
 

Code :
  1. try {
  2.     $date = new Date();
  3.     $year = date('Y');
  4.     $events = $date->getEvents($year);
  5.     print_r($events);
  6.     $dates = $date->getAll($year);
  7. } catch (Exception $e) {
  8.     echo $e->getMessage();
  9.     exit(1);
  10. }

n°2247775
rufo
Pas me confondre avec Lycos!
Posté le 08-01-2015 à 17:49:14  profilanswer
 

Le reporting_error est pas à 0 par hasard sur le serveur de prod ? Si c'est le cas, les erreurs sont masquées, du coup, tu risque pas de voir les msg d'erreur :/


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2247806
recep
Posté le 09-01-2015 à 09:42:37  profilanswer
 

kokola a écrit :

Citation :

mais par contre pour print_r($dates) je n'ai rien qui s'affiche et je n'ai plus rien sur ma page ensuite...


 
entoures ton code d'un try catch pour voir :)
 

Code :
  1. try {
  2.     $date = new Date();
  3.     $year = date('Y');
  4.     $events = $date->getEvents($year);
  5.     print_r($events);
  6.     $dates = $date->getAll($year);
  7. } catch (Exception $e) {
  8.     echo $e->getMessage();
  9.     exit(1);
  10. }



 
Voici le message d'erreur :
 

Code :
  1. DateTime::__construct(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Berlin' for 'CET/1.0/no DST' instead


je viens de modifier au niveau de ma fonction getAll() et ajouté dans DateTime() ceci en plus :

Code :
  1. function getAll($year){
  2.             $r = array();
  3.             $date = new DateTime($year.'-01-01',new DateTimeZone('Europe/Paris'));
  4.             while($date->format('Y') <= $year){


 
et ça à l'air de fonctionner maintenant... merci!

n°2247818
rufo
Pas me confondre avec Lycos!
Posté le 09-01-2015 à 10:37:23  profilanswer
 

Comme quoi, t'avais bien un msg d'erreur mais pas affiché ;) En prod, ça peut se comprendre pour une question de sécurité ;)


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Fonction compatible php 5.5.12 mais non-compatible php 5.3.3 pq?

 

Sujets relatifs
Une sélection de cellule en fonction de la position d'un bouton..Suppression ligne en fonction du format d'une cellule
Compteur population mondiale en C (en fonction du temps)Fonction de hachage en python
[Excel VBA]Fonction Rank ignorer cellule vide et passer à la suivanteEnvois d'un double tableau à une fonction
Aide sur une fonction retournat un pointeur sur char. MerciUtiliser getClass() dans une fonction
problème avec jquery et fonction load()[Javascript] Rendre une fonction compatible avec Firefox
Plus de sujets relatifs à : Fonction compatible php 5.5.12 mais non-compatible php 5.3.3 pq?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR