Salut à tous je souhaite réaliser une classe pour parser un fichier binaire de 320 ko encodés en litte indian.

Comme vous le savez un fichier binaire contient pour chacun des valeurs du fichier une adresse hexadecimale equivalente.

J'ai besoin de recuperer certaines valeurs dans ce fichier en fonction de pattern de recherche.

( exemple je recherche la valeur hexadecimal se situant apràs une sequence de 5 valeurs hexadecimal tel que 11 70 17 28 23 ).

je ne sais vraiment pas comment débuter étant donné que je n'ai trouvé aucun exemple concret. existe t'il seulement une fonction php pour faire ceci !!?

Voici le debut de mon code

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
 
 
Class GestionFichierBinaire {
 
private $sFichierBin ='';
 
static $aInfoBin = array();
 
 
//constructeur
 
function __construct ($sFichierBinaire){
 
	$this->sFichierBin = $sFichierBinaire;
 
 
	if ( TRUE === file_exists ($this->sFichierBin)){
 
		$sExtFichier = new SplFileInfo ($this->sFichierBin);
 
		if ($sExtFichier ->getExtension() !== '.bin'){
 
 
			if ( '320 ' == round(filesize($this->sFichierBin)/1024)){
 
				// on verifie maintenant l'encodage du fichier  mb detect encoding
				if (
 
 
 
			}
			else{
				throw new Exception ('Le fichier binaire '.$this->sFichierBin.' ne fait pas 320 ko. il fait '.round(filesize($this->sFichierBin)/1024));
			}// fin du else
 
		}
		else{
			throw new Exception ( 'Le fichier n\existe pas !');
		}//fin du else 
	}
 
}// fin du constructeur
 
}
?>
premiere question je n'arrive pas à efffectuer une comparaison typée avec ce que me renvoit la fonction round(filsize()). ou est mon erreur

deuxiemement : je souhaite utiliser la fonction mb detect encoding pour pouvoir detecter l'encodage de mon fichier.

Si je regarde la description de cette fonction , celle-ci attend une chaine de caractere ?? ça ne serait pas vraiment un probleme mais un fichier hexadecimal n'est pas une chaine de caractere non ? et comment realiser la comparaison typée avec little endian ?

merci