fixed import insert
This commit is contained in:
@@ -40,6 +40,29 @@ error_log("Excelrows: " . json_encode($excelrows));
|
||||
|
||||
$user_id = $iduserlogin ?? 1;
|
||||
|
||||
/**
|
||||
* Normalizza un nome colonna per il confronto header Excel <-> mapping.
|
||||
* Risolve alla radice i mismatch causati da caratteri invisibili:
|
||||
* - non-breaking space (U+00A0), narrow NBSP (U+202F), figure space (U+2007), ecc. -> spazio normale
|
||||
* - tab, newline e altri whitespace -> spazio normale
|
||||
* - spazi multipli consecutivi -> un solo spazio
|
||||
* - trim ai bordi
|
||||
* NB: usata SOLO per il matching, non altera i valori importati.
|
||||
*/
|
||||
function normalizeColName($s): string
|
||||
{
|
||||
$s = (string)$s;
|
||||
// Converte i principali spazi Unicode "insidiosi" in spazio normale
|
||||
$s = str_replace(
|
||||
["\xC2\xA0", "\xE2\x80\xAF", "\xE2\x80\x87", "\xE2\x80\x89", "\xE2\x80\x8A", "\xEF\xBB\xBF"],
|
||||
' ',
|
||||
$s
|
||||
);
|
||||
// Qualsiasi sequenza di whitespace (spazi, tab, newline) -> singolo spazio
|
||||
$s = preg_replace('/\s+/u', ' ', $s);
|
||||
return trim((string)$s);
|
||||
}
|
||||
|
||||
$db = DBHandlerSelect::getInstance();
|
||||
$pdo = $db->getConnection();
|
||||
|
||||
@@ -105,7 +128,12 @@ foreach ($selected_rows as $rowIndex) {
|
||||
$fieldValue = null;
|
||||
if (!$mapping['is_manual']) {
|
||||
$excelColumn = trim($mapping['excel_column']);
|
||||
$excelColumnIndex = array_search($excelColumn, array_map('trim', $columns));
|
||||
// Match robusto: normalizza header e mapping (NBSP, spazi doppi, tab...)
|
||||
// così un solo/doppio spazio o un non-breaking space non rompono il confronto.
|
||||
$excelColumnIndex = array_search(
|
||||
normalizeColName($excelColumn),
|
||||
array_map('normalizeColName', $columns)
|
||||
);
|
||||
if ($excelColumnIndex !== false && isset($row[$excelColumnIndex]) && $row[$excelColumnIndex] !== '') {
|
||||
$fieldValue = $row[$excelColumnIndex];
|
||||
error_log("Found Excel column '$excelColumn' at index $excelColumnIndex, value: " . var_export($fieldValue, true));
|
||||
|
||||
Reference in New Issue
Block a user