Vérification d'une chaine de caractère _ php

Résolu
amine_marc Messages postés 256 Date d'inscription   Statut Membre Dernière intervention   -  
amine_marc Messages postés 256 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
je veux tester une chaine de caractère si elle est sous la forme suivante a^b où a et b sont des nombres. C'est-à-dire, un programme près de ça:

$ch=2^3;
function f($ch)
{
  if($ch == ???)
     echo "Forme acceptable !";
  else
     echo "Fome non acceptable !";
}


veuillez me dire comme résoudre ce problème et merci d'avance.
A voir également:

1 réponse

animostab Messages postés 2829 Date d'inscription   Statut Membre Dernière intervention   738
 
salut
tu dois convertir chaque chiffre sous sa forme binaire (2 et 3) puis les comparer pour chaque decimale
quand c'est égal ca prend la valeur 0 (false) inégale la valeur 1 (true)
exemple

0101
0011
------
0110 ( false true true false)

donc rcherche la valeur binaire de 2 et 3 et compare les, le resultat obtenu sera ce que tu dois mettre après ==
Un petit merci vaut mieux qu'une grande ignorance !
Donc si votre sujet est résolu une réponse avec merci c'est pas de refus.
1
amine_marc Messages postés 256 Date d'inscription   Statut Membre Dernière intervention   2
 
tout d'abord, merci animistab; mais je n'ai pas bien compris votre code!! Je pense que tu n'as pas compris également mon but de ce script.
En bref, j'essaie de vérifier si $ch est sous forme d'un alphanumérique (ex: 5^4) pour exclure les cas comme c^3 et b^5, etc.
0
animostab Messages postés 2829 Date d'inscription   Statut Membre Dernière intervention   738
 
ok le truc c'est que $ch représente le resultat de comparaison des valeur binaire
donc tu devrais faire
$a = 2;
$b=3;
$ch=$a^$b;
après tu vérifie si $a et $b sont numériques
if ( is_numeric($a) && is_numeric($b) )

sinon recupérer la chaine $ch avec strval($ch) et comparer avec [0-9]*\^[0-9]*
0
amine_marc Messages postés 256 Date d'inscription   Statut Membre Dernière intervention   2
 
c'est exactement ce que je cherchais. Merci bcp animostab
0