Problème list/explode
Posté : 26 mars 2015, 17:18
Bonjour,
J'énonce mon problème en essayant d'avoir une suggestions de votre part.
je dois récupérer une trames depuis un fichier texte en php, jusque la pas de problème mais la trames possèdent une taille d'octets différentes.
Je me réexplique la trames peux soit être de type : "$CAN;S;D;0x3e1;0x6;0x9;0xa3;0x2;0x4;0x11;0x1;#" soit $CAN;S;D;0x3e1;0x6;0x9;0xa3;
les valeurs sont variables.
J'ai penser a une alternative avec la fonction strtok mais sans succés le problème est lorsque j'effectue mon listing d'octets et si un octet ou plusieurs octets ne sont pas présent.
voici le code:
Merci a vous !
J'énonce mon problème en essayant d'avoir une suggestions de votre part.
je dois récupérer une trames depuis un fichier texte en php, jusque la pas de problème mais la trames possèdent une taille d'octets différentes.
Je me réexplique la trames peux soit être de type : "$CAN;S;D;0x3e1;0x6;0x9;0xa3;0x2;0x4;0x11;0x1;#" soit $CAN;S;D;0x3e1;0x6;0x9;0xa3;
les valeurs sont variables.
J'ai penser a une alternative avec la fonction strtok mais sans succés le problème est lorsque j'effectue mon listing d'octets et si un octet ou plusieurs octets ne sont pas présent.
voici le code:
<?php
$fp = fopen ("trames.txt", "r"); //ouverture lecture seul du fichier trames.txt
$contenu = fgets ($fp, 255); //récupération de la ligne courante
fclose ($fp); //fermeture fichier
list($start,$type,$type2,$id,$taille,$octet1,$octet2,$octet3,$octet4,$octet5,$octet6) = explode(";",$contenu); //liste les diférentes parties de la trames, stocker en variable puis découper graçe au ;
$tab= array($octet1,$octet2,$octet3,$octet4,$octet5,$octet6); //tableau contenant les différents les octets de la trames essentiel
//octdec($taille);
$dtaille = hexdec($taille); //convertis la variable taille de type 0x06 en int 6 stock dans dtaille
//var_dump($dtaille);
for($i=0;$i<$dtaille;) //Boucle jusqu'a la taille de la trames essentiel et finis
{
$tailleoct = strlen($tab[$i]); //tailleoct contient la taille de chaques octets
if($tailleoct<4) // si la taille de l'octet est < a 4 caractères alors
{
$tab[$i] = substr_replace($tab[$i],'0',2,0); //Rajoutez un 0 après 0x
}
$i++;
}
?>
Je récupèrent ces octets pour les envoyer dans les formulaires de mon site.Merci a vous !