<?php
$inputDir = './files/';
$outputDir = './output/';
if (!is_dir($inputDir)) {
mkdir($inputDir, 0777, true);
}
if (!is_dir($outputDir)) {
mkdir($outputDir, 0777, true);
}
$files = glob($inputDir . '*.txt');
foreach ($files as $file) {
$content = file_get_contents($file);
preg_match('/http:\/\/[^\s]+/', $content, $matches);
$portalUrl = isset($matches[0]) ? $matches[0] : null;
if (!$portalUrl) {
continue;
}
preg_match_all('/\b[0-9A-F]{2}(:[0-9A-F]{2}){5}\b/i', $content, $macs);
if (!empty($macs[0])) {
$macFileContent = $portalUrl . PHP_EOL;
$outputFileName = preg_replace('/[^a-zA-Z0-9]/', '_', parse_url($portalUrl, PHP_URL_HOST)) . '_macs.txt';
$outputFilePath = $outputDir . $outputFileName;
if (file_exists($outputFilePath)) {
$existingContent = file_get_contents($outputFilePath);
$existingMacs = explode(PHP_EOL, trim($existingContent));
$newMacs = array_diff($macs[0], $existingMacs);
if (!empty($newMacs)) {
$macFileContent = implode(PHP_EOL, $newMacs) . PHP_EOL;
file_put_contents($outputFilePath, $macFileContent, FILE_APPEND);
}
} else {
$macFileContent .= implode(PHP_EOL, $macs[0]);
file_put_contents($outputFilePath, $macFileContent);
}
}
}
echo "Processing completed.";
?>