File: /home/windevelwb/www/api2/Macphp.php
<?php
// inject_macs_inplace.php
$baseDir = __DIR__;
$inputFile = $baseDir . '/output/listes.txt';
$targetFile = $baseDir . '/liste.php';
$backupFile = $baseDir . '/liste.php.bak.' . time();
// 1) vérifications
if (!file_exists($inputFile)) {
echo "ERREUR: fichier d'entrée introuvable : $inputFile\n";
exit(1);
}
if (!file_exists($targetFile)) {
echo "ERREUR: fichier cible introuvable : $targetFile\n";
exit(1);
}
// 2) lire et nettoyer les adresses MAC
$lines = file($inputFile, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
$macs = array();
foreach ($lines as $raw) {
$clean = trim($raw);
$clean = trim($clean, " \t\n\r'\",;"); // supprime quotes/virgules/points-virgules
if ($clean === '') continue;
$macs[] = strtoupper($clean);
}
if (count($macs) === 0) {
echo "Aucune adresse MAC trouvée dans $inputFile\n";
exit(1);
}
// 3) sauvegarde du fichier existant
if (!copy($targetFile, $backupFile)) {
echo "ERREUR: impossible de créer la sauvegarde $backupFile\n";
exit(1);
}
echo "Sauvegarde créée : $backupFile\n";
// 4) lire le contenu cible
$content = file_get_contents($targetFile);
if ($content === false) {
echo "ERREUR: impossible de lire $targetFile\n";
exit(1);
}
// 5) construire le bloc $AdresseMac
$macBlock = "\n// Liste des adresses MAC ajoutée automatiquement\n\$AdresseMac = array(\n";
foreach ($macs as $m) {
$macBlock .= " '" . $m . "',\n";
}
$macBlock .= ");\n\n";
// 6) remplacer un bloc existant $AdresseMac = array(...) s'il existe
$pattern = '/\$AdresseMac\s*=\s*array\s*\(\s*(?:[^\)]*)\)\s*;\s*/is';
if (preg_match($pattern, $content)) {
$newContent = preg_replace($pattern, $macBlock, $content, 1);
echo "Bloc \$AdresseMac existant remplacé.\n";
} else {
// 7) insérer avant echo json_encode($result); si présent
$needle = 'echo json_encode($result);';
if (strpos($content, $needle) !== false) {
$newContent = str_replace($needle, $macBlock . $needle, $content);
echo "Bloc \$AdresseMac inséré avant echo json_encode(\$result).\n";
} else {
// sinon, ajouter à la fin du fichier
$newContent = $content . "\n" . $macBlock;
echo "echo json_encode(\$result) non trouvé. Bloc \$AdresseMac ajouté en fin de fichier.\n";
}
}
// 8) écrire en place (écrase le fichier cible)
if (file_put_contents($targetFile, $newContent) === false) {
echo "ERREUR: impossible d'écrire dans $targetFile\n";
// tenter de restaurer la sauvegarde
if (file_exists($backupFile)) {
copy($backupFile, $targetFile);
echo "Restauration automatique depuis la sauvegarde effectuée.\n";
}
exit(1);
}
echo "Injection terminée : $targetFile mis à jour.\n";
echo "Adresses MAC ajoutées : " . count($macs) . "\n";
echo "Si tout est OK, supprime la sauvegarde manuellement si tu le souhaites : $backupFile\n";