Bonjour,
voici 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
 
$location = "\\\\SERVEURMAG\\Transfert\\Portable\\";
	$dir = opendir($location) or die('Impossible d\'accéder au dossier de Transfert Portable :'.$location); //recupère la liste des fichiers du dossier
	while($file = readdir($dir)) //boucle sur les fichiers
	{
		if($file != '.' && $file != '..' && !is_dir($dossier_msi.$file)) //pour se débarasser des dossiers et des liens symboliques
		{
 
			if(preg_match("#^CZM".$videor."\.[0-9]{2,3}$#", $file)) //recherche le bon motif dans le nom de fichiers: CZMXXX.XX(X) (1)XXX = videor (2)XX(X) = nb aleatoire
			{
				echo "fichier trouve: ".$file."\r\n";
				//on lit le fichier
				$buffer = file_get_contents($location.$file) or die('Impossible d\'ouvrir le fichier de commandes :'.$file);
				//echo $buffer."\r\n";
						// foreach($code as $c)
						// {
				$matches = array();
				if(preg_match_all("#[0-9]{5}([0-9]{8})[0-9]{13}([0-9]{7})[0-9].#", $buffer, $matches))
				{
					echo 'regex match!';
					var_dump($matches);
					$cod = $matches[1];
					$qte = $matches[2]/100;
					echo $cod."  -  ".$qte."\r\n";
				}
						// }
 
			}
		}
	}
closedir($dir);
Voici comment s'organise un fichier de scanner portable:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
CMDREC.DAT  0001020
005020088800500000008880050000100C
005020088800600000008880060000100C
 
Fournisseur(5 char) code_article(8char) ean (13 char) qte (7 char) flag(1 char)
Ma premiere regex pour retrouver mon ficher fonctionne.
Mon problème est que la seconde qui reconnait le motif spécifique ne fonctionne pas.