switch pas pris en compte dans un if
18 messages
• Page 1 sur 2 • 1, 2
- Ramon
- Nouveau WRInaute

- Messages: 28
- Inscription: 22 Juil 2004
switch pas pris en compte dans un if
Bonjour,
j'ai un switch classique sur une variable pour affecter le mois en lettre plutôt qu'en chiffre qui fonctionne bien
je voudrai afficher les mois en fonction de la langue avec if
là le mois se retrouve affiché en chiffre !
de même si je met le if dans case ou un autre switch imbriqué dans case.
Ça fait depuis hier que cherche sans résultat !
Merci pour votre aide.
Raymond
j'ai un switch classique sur une variable pour affecter le mois en lettre plutôt qu'en chiffre qui fonctionne bien
- Code: Tout sélectionner
$nommois = date('n', mktime(0,0,0,$_month, 1, $_year));
$mois = $nommois;
switch ($mois)
{
case "1":
$mois = "Janvier";
break;
case "2":
$mois = "Février";
break;
}
je voudrai afficher les mois en fonction de la langue avec if
- Code: Tout sélectionner
$nommois = date('n', mktime(0,0,0,$_month, 1, $_year));
$mois = $nommois;
if($langue == 1)
{
switch ($mois)
{
case "1":
$mois = "Janvier";
break;
case "2":
$mois = "Février";
break;
}
}
là le mois se retrouve affiché en chiffre !
de même si je met le if dans case ou un autre switch imbriqué dans case.
Ça fait depuis hier que cherche sans résultat !
Merci pour votre aide.
Raymond
-

Marie-Aude - Modérateur

- Messages: 11900
- Inscription: 5 Juin 2006
Re: switch pas pris en compte dans un if
Fais des dump de variable à chaque étape, déjà. Et vérifie $langue en particulier 
-

spout - WRInaute accro

- Messages: 4382
- Inscription: 14 Mai 2003
Re: switch pas pris en compte dans un if
N'oublie pas un default: à ton switch, sinon il risque de tourner en boucle.
Pourquoi vouloir traduire à la mano ?
setlocale() + strftime() c'est pas bon ?
Ramon a écrit:je voudrai afficher les mois en fonction de la langue avec if
Pourquoi vouloir traduire à la mano ?
setlocale() + strftime() c'est pas bon ?
-

UsagiYojimbo - WRInaute accro

- Messages: 8579
- Inscription: 23 Nov 2005
Re: switch pas pris en compte dans un if
- Ramon
- Nouveau WRInaute

- Messages: 28
- Inscription: 22 Juil 2004
Re: switch pas pris en compte dans un if
Merci pour vos réponses.
Précision, mes connaissance PHP sont limités.
Dur a comprendre pour moi " Fais des dump de variable à chaque étape ".
setlocale() + strftime() semble pas adapté à ce que je recherche.
Mais vos remarques on été productive.
Ma variable déclaré en début de page X :
<?php $langue = 1; ?>
n'est pas prise en compte en l'intérieur de mon script inséré en include plus bas dans la page,
alors qu'elle fonctionne après l'include !
Précision, mes connaissance PHP sont limités.
Dur a comprendre pour moi " Fais des dump de variable à chaque étape ".
setlocale() + strftime() semble pas adapté à ce que je recherche.
Mais vos remarques on été productive.
Ma variable déclaré en début de page X :
<?php $langue = 1; ?>
n'est pas prise en compte en l'intérieur de mon script inséré en include plus bas dans la page,
alors qu'elle fonctionne après l'include !
-

UsagiYojimbo - WRInaute accro

- Messages: 8579
- Inscription: 23 Nov 2005
Re: switch pas pris en compte dans un if
Si ce que tu veux faire c'est afficher le nom du mois en toute lettre, en fonction de son numéro (ce qui semble être le cas), alors setlocale et strftime sont au contraire tout à fait indiqué : http://www.formation-cakephp.com/25/afficher-les-dates-en-francais
Ou alors on ne comprend aps ce que tu veux faire, auquel cas tu devrais clarifier.
Ou alors on ne comprend aps ce que tu veux faire, auquel cas tu devrais clarifier.
- Ramon
- Nouveau WRInaute

- Messages: 28
- Inscription: 22 Juil 2004
Re: switch pas pris en compte dans un if
UsagiYojimbo, merci d'avoir insisté.
J'ai mieux regardé et modifié mon code en fonction.
C'est super, tout est plus simple comme tu l'as dit.
e-kiwi, j'ai justement fait des echo $langue, comme je l'expliquais plus haut, $langue ne s'affiche pas dans le fichier inclu mais s'affiche bien en dehors de l'inclu.
Bon, je n'en ai plus besoin, mais j'aurai voulu savoir pourquoi, c'est vraiment étonnant pour moi.
Merci pour votre aide
Raymond
J'ai mieux regardé et modifié mon code en fonction.
C'est super, tout est plus simple comme tu l'as dit.
e-kiwi, j'ai justement fait des echo $langue, comme je l'expliquais plus haut, $langue ne s'affiche pas dans le fichier inclu mais s'affiche bien en dehors de l'inclu.
Bon, je n'en ai plus besoin, mais j'aurai voulu savoir pourquoi, c'est vraiment étonnant pour moi.
Merci pour votre aide
Raymond
-

Blount - WRInaute occasionnel

- Messages: 430
- Inscription: 18 Nov 2010
Re: switch pas pris en compte dans un if
Attention à la fonction « setlocale ». Des problèmes peuvent survenir lors de l'utilisation de PHP en multi processus.
http://php.net/manual/fr/function.setlocale.php
En gros, si deux personnes visitent le site simultanément dans une langue différente, la dernière personne effectuant le « setlocale » impactera sur la première (dans certain cas, si deux processus différents travaillent). Une sorte de franglais
À oublier dans un site à fort trafic.
http://php.net/manual/fr/function.setlocale.php
En gros, si deux personnes visitent le site simultanément dans une langue différente, la dernière personne effectuant le « setlocale » impactera sur la première (dans certain cas, si deux processus différents travaillent). Une sorte de franglais
À oublier dans un site à fort trafic.
-

Marie-Aude - Modérateur

- Messages: 11900
- Inscription: 5 Juin 2006
Re: switch pas pris en compte dans un if
Blount a écrit:Attention à la fonction « setlocale ». Des problèmes peuvent survenir lors de l'utilisation de PHP en multi processus.
http://php.net/manual/fr/function.setlocale.php
En gros, si deux personnes visitent le site simultanément dans une langue différente, la dernière personne effectuant le « setlocale » impactera sur la première (dans certain cas, si deux processus différents travaillent). Une sorte de franglais
À oublier dans un site à fort trafic.
Le site ou la page ?
Si c'est la page, un système correct d'adressage devrait réduire quasiment à zéro le risque que deux personnes visitent simultanément la même page avec un paramétrage de langue différent, non ?
-

Blount - WRInaute occasionnel

- Messages: 430
- Inscription: 18 Nov 2010
Re: switch pas pris en compte dans un if
Marie-Aude a écrit:Blount a écrit:Attention à la fonction « setlocale ». Des problèmes peuvent survenir lors de l'utilisation de PHP en multi processus.
http://php.net/manual/fr/function.setlocale.php
En gros, si deux personnes visitent le site simultanément dans une langue différente, la dernière personne effectuant le « setlocale » impactera sur la première (dans certain cas, si deux processus différents travaillent). Une sorte de franglais
À oublier dans un site à fort trafic.
Le site ou la page ?
Si c'est la page, un système correct d'adressage devrait réduire quasiment à zéro le risque que deux personnes visitent simultanément la même page avec un paramétrage de langue différent, non ?
Cela va même au delà du site.
Si Apache est utilisé, il lance plusieurs processus pour traiter les requêtes.
Cela concerne tous les sites du serveur.
Maintenant ça mérite quelques testes.
Mais toutes les installations ne sont pas concernée. Par exemple, dans mes dépôts :
- Code: Tout sélectionner
apache2-mpm-prefork - Serveur HTTP Apache - modèle traditionnel « non-threaded »
apache2-mpm-worker - Apache HTTP Server - high speed threaded model
Ici, apache2-mpm-worker sera concerné par le problème.
S'il y a des personnes qui s'y connaisse un peu plus, ce serait bien de donner votre avis
Pour ma part, je travail régulièrement avec Zend Framework. Il corrige justement certain de ces problème (gettext par exemple, utilisant setlocale dans PHP, dans ZF, il doit être récrit).
- Ramon
- Nouveau WRInaute

- Messages: 28
- Inscription: 22 Juil 2004
Re: switch pas pris en compte dans un if
e-kiwi a écrit:tu colles que des bouts de scripts, impossible de déterminer le problème. si il faut tu es dans une fonction, tu remet à zéro quelquepart la variable, etc ...
Tu as raison, hier je me suis rendu compte que mon problème venais du fait que j'appelais la variable à l'intérieur d'une fonction
Y a t il un moyen de récupérer le résultat d'une variable à l'intérieur d'une fonction, ou c'est pas possible ?
Pour setlocale, ce n'ai pas pour le site en entier, je vais mettre <?php setlocale(LC_ALL, 'nl_NL'); ?> dans 4 pages en langue différente qui va appeler le fichier ou il y a strftime().
Quand ça sera en place, je vous dirai si ça rentre en conflit.
Raymond
- Ramon
- Nouveau WRInaute

- Messages: 28
- Inscription: 22 Juil 2004
Re: switch pas pris en compte dans un if
Marie-Aude a écrit:Blount a écrit:Attention à la fonction « setlocale ». Des problèmes peuvent survenir lors de l'utilisation de PHP en multi processus.
http://php.net/manual/fr/function.setlocale.php
En gros, si deux personnes visitent le site simultanément dans une langue différente, la dernière personne effectuant le « setlocale » impactera sur la première (dans certain cas, si deux processus différents travaillent). Une sorte de franglais
À oublier dans un site à fort trafic.
Le site ou la page ?
Si c'est la page, un système correct d'adressage devrait réduire quasiment à zéro le risque que deux personnes visitent simultanément la même page avec un paramétrage de langue différent, non ?
Après test, 2 connexions simultané n'a pas causé de souci.
- Ramon
- Nouveau WRInaute

- Messages: 28
- Inscription: 22 Juil 2004
Re: switch pas pris en compte dans un if
Ramon a écrit:Tu as raison, hier je me suis rendu compte que mon problème venais du fait que j'appelais la variable à l'intérieur d'une fonction![]()
Y a t il un moyen de récupérer le résultat d'une variable à l'intérieur d'une fonction, ou c'est pas possible ?
Pour conclure, je n’avançais pas parce que je ne déclarais pas ma vavriable à l'intérieur de la fonction :
global $langue;
Merci à tous de m'avoir permis de finaliser mon script.
Raymond
18 messages
• Page 1 sur 2 • 1, 2
Lectures recommandées sur ce thème :
- Analyse de popularité
Cet outil vous permet d'analyser en détails la "popularité" de votre site sur Google. En plus du nombre de liens pris en compte par Google, il calcule le pourcentage de liens internes parmi tous les liens, et il affiche les premières URL trouvées. - Liste de mots-clés
Cet outil vous permet de créer à partir de quelques mots-clés une liste d'expressions constituées des mots pris dans tous les ordres possibles. Il sert aux analyses de positionnement et achats de mots-clés. - TouchGraph Google Browser
Description du TouchGraph Google Browser (outil externe) : il s'agit d'un outil graphique permettant de visualiser des sites similaires (selon Google). On peut sauter de site en site, et se rendre compte facilement des communautés de sites, ou des nébuleuses de sites traitant du même sujet.
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité
