De combien de caractères pourriez-vous réduire mon horreur ici-présente ?
- $page est un string/numéro de 2 chiffres (pas de virgule ni de signe)
- $page <= $dernierepage
- si $page non valide, $page="00"
De combien de caractères pourriez-vous réduire mon horreur ici-présente ? - $page est un string/numéro de 2 chiffres (pas de virgule ni de signe) - $page <= $dernierepage - si $page non valide, $page="00"
De combien de caractères pourriez-vous réduire mon horreur ici-présente ?
- $page est un string/numéro de 2 chiffres (pas de virgule ni de signe)
- $page <= $dernierepage
- si $page non valide, $page="00"
De combien de caractères pourriez-vous réduire mon horreur ici-présente ? - $page est un string/numéro de 2 chiffres (pas de virgule ni de signe) - $page <= $dernierepage - si $page non valide, $page="00"
Pour répondre à ta question, je vais essayer de reformaliser ton problème. Tu as une variable de type chaine de caractère qui à priori représente un nombre.
1°/ Tu veux vérifier que la variable est déclarée et le format de cette chaine (2 chiffres)
2°/ Tu veux faire en sorte que si le nombre est supérieur à dernière page, il faut le mettre à 0
3°/ Ensuite tu veux reformater le nombre pour l'afficher sur deux digits.
Il y a peut être plus simple (notament pour ne pas utiliser l'expression régulière) mais au moins on comprends mieux.
Pour répondre à ta question, je vais essayer de reformaliser ton
problème. Tu as une variable de type chaine de caractère qui à
priori représente un nombre.
1°/ Tu veux vérifier que la variable est déclarée et le format de
cette chaine (2 chiffres)
2°/ Tu veux faire en sorte que si le nombre est supérieur à
dernière page, il faut le mettre à 0
3°/ Ensuite tu veux reformater le nombre pour l'afficher sur deux
digits.
Pour répondre à ta question, je vais essayer de reformaliser ton problème. Tu as une variable de type chaine de caractère qui à priori représente un nombre.
1°/ Tu veux vérifier que la variable est déclarée et le format de cette chaine (2 chiffres)
2°/ Tu veux faire en sorte que si le nombre est supérieur à dernière page, il faut le mettre à 0
3°/ Ensuite tu veux reformater le nombre pour l'afficher sur deux digits.
De combien de caractères pourriez-vous réduire mon horreur ici-présente ? - $page est un string/numéro de 2 chiffres (pas de virgule ni de signe) - $page <= $dernierepage - si $page non valide, $page="00"
A vue de nez, je dirais :
if(strlen(trim($page))==2 && ctype_digit(trim($page))===TRUE && $page <= $dernierepage) { // OK } else { // Y a un stuut // ==> Page par défaut $page="00"; }
Si tu ne dois rien mettre quand la condition est juste, alors il faudra peut-être voir à inverser pour ne pas mettre un else.
En espérant que ca aide ! :-)
-- Bruno BAGUETTE -
De combien de caractères pourriez-vous réduire mon horreur ici-présente ?
- $page est un string/numéro de 2 chiffres (pas de virgule ni de signe)
- $page <= $dernierepage
- si $page non valide, $page="00"
A vue de nez, je dirais :
if(strlen(trim($page))==2 && ctype_digit(trim($page))===TRUE && $page <=
$dernierepage)
{
// OK
}
else
{
// Y a un stuut
// ==> Page par défaut
$page="00";
}
Si tu ne dois rien mettre quand la condition est juste, alors il faudra
peut-être voir à inverser pour ne pas mettre un else.
De combien de caractères pourriez-vous réduire mon horreur ici-présente ? - $page est un string/numéro de 2 chiffres (pas de virgule ni de signe) - $page <= $dernierepage - si $page non valide, $page="00"
A vue de nez, je dirais :
if(strlen(trim($page))==2 && ctype_digit(trim($page))===TRUE && $page <= $dernierepage) { // OK } else { // Y a un stuut // ==> Page par défaut $page="00"; }
Si tu ne dois rien mettre quand la condition est juste, alors il faudra peut-être voir à inverser pour ne pas mettre un else.
C'est effectivement bien plus concis et mieux construit que moi... J'avais oublié l'intérêt du sprintf !!! Quant à ereg et preg_match, je vais sérieusement me pencher dessus. Merci beaucoup !! :-)
C'est effectivement bien plus concis et mieux construit que moi...
J'avais oublié l'intérêt du sprintf !!!
Quant à ereg et preg_match, je vais sérieusement me pencher dessus.
Merci beaucoup !! :-)
C'est effectivement bien plus concis et mieux construit que moi... J'avais oublié l'intérêt du sprintf !!! Quant à ereg et preg_match, je vais sérieusement me pencher dessus. Merci beaucoup !! :-)
Je suis confondu par l'extrême diversité des solutions présentées !!! J'ai un petit faible pour la lisibilité de celle-ci ;-) Mais peut-être que les autres sont plus puissantes...
Merci à tous : vous venez de me redonner envie de jouer aux jeux de logique booléenne, au lieu de me contenter de produire une application ! (Mouiche : encore beaucoup de travail pour améliorer ma façon de concevoir les algorythmes et ma culture en PHP...)
Je suis confondu par l'extrême diversité des solutions présentées !!!
J'ai un petit faible pour la lisibilité de celle-ci ;-)
Mais peut-être que les autres sont plus puissantes...
Merci à tous : vous venez de me redonner envie de jouer aux jeux de logique
booléenne, au lieu de me contenter de produire une application !
(Mouiche : encore beaucoup de travail pour améliorer ma façon de concevoir
les algorythmes et ma culture en PHP...)
Je suis confondu par l'extrême diversité des solutions présentées !!! J'ai un petit faible pour la lisibilité de celle-ci ;-) Mais peut-être que les autres sont plus puissantes...
Merci à tous : vous venez de me redonner envie de jouer aux jeux de logique booléenne, au lieu de me contenter de produire une application ! (Mouiche : encore beaucoup de travail pour améliorer ma façon de concevoir les algorythmes et ma culture en PHP...)
bruno
he ho! je suis stagiaire qui debiug moi! alors prend po mon algo, il doit etre bourré de faute!!! <troll> :) </troll>
ps : ca veut dire quoi troll?
he ho! je suis stagiaire qui debiug moi!
alors prend po mon algo, il doit etre bourré de faute!!!
<troll>
:)
</troll>
Voilà : ça me semble lisible... et corrigé ! (merci pour la leçon : les erreurs, c'est formateur ;-)
Gill
alors prend po mon algo, il doit etre bourré de faute!!! Zut ! En effet, il y en a encore une :
il faudrait rajouter un sprintf("%02d",$page); à la 2ème ligne, sinon, en cas de "1 caractère", PHP n'est pas content ("Tu essaies de modifier le caractère qui suit le dernier !"). D'où l'intérêt du ereg("[0-9]{1,2}",$page)) proposé par ailleurs ;-)
En fait, je voulais éviter d'utiliser tel quel un algo tout finit, travailler un peu de mon coté, quoi ! Histoire de pas trop jouer au profiteur de bonnes âmes ;-) !
Pfff... Du coup, ça fait long et pas tellement plus sûr que les autres propositions...
alors prend po mon algo, il doit etre bourré de faute!!!
Zut ! En effet, il y en a encore une :
il faudrait rajouter un sprintf("%02d",$page); à la 2ème ligne, sinon, en
cas de "1 caractère", PHP n'est pas content ("Tu essaies de modifier le
caractère qui suit le dernier !").
D'où l'intérêt du ereg("[0-9]{1,2}",$page)) proposé par ailleurs ;-)
En fait, je voulais éviter d'utiliser tel quel un algo tout finit,
travailler un peu de mon coté, quoi ! Histoire de pas trop jouer au
profiteur de bonnes âmes ;-) !
alors prend po mon algo, il doit etre bourré de faute!!! Zut ! En effet, il y en a encore une :
il faudrait rajouter un sprintf("%02d",$page); à la 2ème ligne, sinon, en cas de "1 caractère", PHP n'est pas content ("Tu essaies de modifier le caractère qui suit le dernier !"). D'où l'intérêt du ereg("[0-9]{1,2}",$page)) proposé par ailleurs ;-)
En fait, je voulais éviter d'utiliser tel quel un algo tout finit, travailler un peu de mon coté, quoi ! Histoire de pas trop jouer au profiteur de bonnes âmes ;-) !