import csv

def genera_php_array(csv_filename, php_filename):
    records = []
    
    # 'utf-8-sig' rimuove il carattere invisibile (BOM) aggiunto da Excel
    with open(csv_filename, mode='r', encoding='utf-8-sig') as file:
        sample = file.read(2048)
        file.seek(0)
        
        # Rileva automaticamente se Excel ha usato ';' oppure ','
        delimiter = ';' if ';' in sample else ','
        reader = csv.DictReader(file, delimiter=delimiter)
        
        for row in reader:
            # Pulisce le chiavi da spazi extra e converte in minuscolo
            row_clean = {k.strip().lower(): v for k, v in row.items() if k}
            
            # Cerca la colonna 'id_catalogo' (o 'ustc_id' come alternativa)
            id_cat_val = row_clean.get('id_catalogo', row_clean.get('ustc_id', ''))
            
            # Escape degli apici singoli per la sintassi PHP
            id_cat = id_cat_val.replace("'", "\\'")
            tema = row_clean.get('tema', '').replace("'", "\\'")
            nazione = row_clean.get('nazione', '').replace("'", "\\'")
            titolo = row_clean.get('titolo', '').replace("'", "\\'")
            luogo = row_clean.get('luogo', '').replace("'", "\\'")
            desc = row_clean.get('descrizione', '').replace("'", "\\'")
            anno = row_clean.get('anno', '').replace("'", "\\'")
            
            record = f"""    [
        'id_catalogo' => '{id_cat}',
        'tema' => '{tema}',
        'nazione' => '{nazione}',
        'titolo' => '{titolo}',
        'anno' => '{anno}',
        'luogo' => '{luogo}',
        'descrizione' => '{desc}'
    ]"""
            records.append(record)

    with open(php_filename, mode='w', encoding='utf-8') as out_file:
        out_file.write("<?php\n// Database dell'archivio generato dinamicamente\n\n")
        out_file.write("$archivio_ustc = [\n")
        out_file.write(",\n".join(records))
        out_file.write("\n];\n?>")
        
    print(f"Esportazione completata con successo! File '{php_filename}' generato.")

genera_php_array('dataset_ustc.csv', 'dati.php')