70 lines
1.7 KiB
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>";
|
|
}
|