zibo-dashboard/public/userarea/match_matrici_foto.php

70 lines
1.7 KiB
PHP

<?php
require_once("include/headscript.php");
$db = DBHandlerSelect::getInstance();
$pdo = $db->getConnection();
$folder = __DIR__ . "/photos/matrici/"; // cartella corretta
$files = scandir($folder);
function normalize($str)
{
$str = strtolower($str);
$str = preg_replace('/[^a-z0-9]/', '', $str); // rimuove tutto ciò che non è alfanumerico
return $str;
}
// Carico matrici
$sql = "SELECT id, nome FROM matrice";
$matrici = $pdo->query($sql)->fetchAll(PDO::FETCH_ASSOC);
$matched = [];
$unmatchedPhotos = [];
foreach ($files as $file) {
// ignora file nascosti, . e ..
if ($file === "." || $file === "..") continue;
$fileNoExt = pathinfo($file, PATHINFO_FILENAME);
$normFile = normalize($fileNoExt);
$found = false;
foreach ($matrici as $m) {
$normNome = normalize($m['nome']);
if ($normNome === "") continue; // evita errori su record vuoti
// MATCHING: inizia con oppure contiene
if (strpos($normFile, $normNome) === 0 || strpos($normFile, $normNome) !== false) {
$update = $pdo->prepare("UPDATE matrice SET photo = ? WHERE id = ?");
$update->execute([$file, $m['id']]);
$matched[] = [$file, $m['nome']];
$found = true;
break;
}
}
if (!$found) {
$unmatchedPhotos[] = $file;
}
}
// RISULTATO:
echo "<h2>✔ FOTO ASSOCIATE</h2>";
if (empty($matched)) echo "Nessuna foto trovata";
foreach ($matched as $m) {
echo "✔ <strong>{$m[0]}</strong> → Matrice: <strong>{$m[1]}</strong><br>";
}
echo "<hr><h2>❌ FOTO NON ASSOCIATE</h2>";
if (empty($unmatchedPhotos)) echo "Tutte le foto hanno trovato una matrice!";
foreach ($unmatchedPhotos as $u) {
echo "❌ <strong>$u</strong><br>";
}