Bonjour,
voici mon code:
Code :
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 :
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.