Bonjour,


Je souhaite récupérer des infos dans un fichier et celle ci ne sont pas toujours au même endroit, mais toujours mise sous la même forme.

J'ai donc un script qui parcours les lignes...

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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
function test_param_sfo()
{
	global $db, $_FILES, $debug;
 
	$file = $_FILES['replay']['path_BCES_dir'].'/PARAM.SFO';
	debug( $_FILES ).'<br>';
	if( file_exists($file) )
	{ 
		$a_file = file($file);
 
		//Variables
		$circuit = FALSE;
 
		foreach( $a_file as $value )
		{
			//On récupère la ligne voiture
			if( eregi('Voiture :', $value) )
			{
				$bidon = explode(",", $value);
 
				$voiture = trim(substr( $bidon[0], 10 ));
				$physique = trim($bidon[1]);
				$pneus = trim($bidon[2]);
 
				echo 'Voiture : '.$voiture.'<br>';
				echo 'Physique : '.$physique.'<br>';
				echo 'Pneus : '.$pneus.'<br>';
 
				unset($bidon);
			}
 
			//On récupère le circuit
			if( stristr('Eiger Nordwand', $value) )
			{
				$circuit = TRUE;
			}
 
			//On récupère le temps
			if( eregi('Temps : [0-9].[0-9]{2}.[0-9]{3}', $value, $temps) )
			{
				$temps = substr( $temps[0], 8 ); //temps[0] !?
 
				echo 'Temps : '.$temps.'<br>';
			}
 
			//On récupère la version
			if( eregi('Ver(.)+[0-9].[0-9]{2}.[0-9]{7}', $value, $version) )
			{
				$version = substr( $version[0], 5 ); //temps[0] !?;
 
				echo 'Ver. '.$version.'<br>';
			}
 
			//On récupère le BCES
			if( eregi('[[:alnum:]]{9}-RPLY2-B-[[:alnum:]]{11}', $value, $bces) )
			{
				echo 'BCES : '.$bces[0].'<br>';
			}
 
 
		}
		debug( $a_file );
	}
 
	//rmdir()
}
Ce qui me pose pb c'est la dernière condition ...

Pourtant si je fait un script de test :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
$bces = 'BCES00104-RPLY2-B-3A457A67014';
if( eregi('[[:alnum:]]{9}-RPLY2-B-[[:alnum:]]{11}', $bces) )
{
	echo 'TRUE';
}
else
{
	echo 'FALSE';
}
ça fonctionne parfaitement

voici le contenu du fichier en question :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
Array
(
    [0] => �PSF��Ä���@���������������������������������������z���������%����������,����������4�������$��C����@���(��V�������h��j�%���€���p��t�0���€���ð��ACCOUNT_ID�ATTRIBUTE�CATEGORY�DETAIL�PARAMS�PARAMS2�PARENTAL_LEVEL�SAVEDATA_DIRECTORY�SAVEDATA_LIST_PARAM�SUB_TITLE�TITLE���0346eecb89e15286����SD��Circuit : Eiger Nordwand 
 
    [1] => Voiture : Volkswagen Golf GTI '05, Professionnelles, S3/S1 
 
    [2] => Temps : 1'12.470 
 
    [3] => Ver. 3.00.4138044�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������SÐ
À@¿èf|‰¡¸>l���0346eecb89e15286�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������BCES00104-RPLY2-B-3A457A67014�����������������������������������REPLAY��[014]Rediffusion fantôme : FREE_RUN��������������������������������������������������������������������������������������������Gran Turismo 5 Prologue - Rediffusion fantôme ���������������������������������������������������������������������������������
)
Attention c'est pas toujours dans cette ordre la !

Je n'arrive donc pas a récupérer ma chaine dans la ligne 4 du fichier