Ciao a tutti, premetto di essere un principiante quindi scusate se scrivo qualche assurdità..
Ho un piccolo problema con l'importazione di un file CSV in MySQL tramite php, il file è così composto;

KERT;Stabilizzatore 180-270V 5,5 KVA;Art. con magazzino;ACCESSORI;ALIMENTATORI;pz;22; 1.400,00;;;;;;;;;;;;;;; 905,63;;;0;0;;1;1;0;0;0;0;0,49;28/12/2021;28/12/2021;28/10/2021;28/10/2021;16/11/2021; 905,63; 905,63; 1.400,00;Esaurito;

questa è una riga del csv.
Il codice per l'importazione è il seguente

Codice PHP:
public function import() {

        
$fieldseparator ";";
        
$lineseparator "\n";
        
$lines 0;
        
$linearray = array();

        
$csv_file $_FILES['fileToUpload']['tmp_name'];
        
$csvcontent fread($file,$size);
        
fclose($file);
        
$stmt $this->db->prepare("TRUNCATE TABLE tab_prodotti");
        
$stmt->execute();

        foreach(
explode($lineseparator,$csvcontent) as $line) {            
            
$lines++;
            if(
$lines>1) {                
                
                
// PULISCO LE SINGOLE RIGHE
                
$line trim($line," \t");
                
$line str_replace("\r","",$line);
                
$line str_replace("'","\'",$line);
                
$line str_replace('"',"",$line);
                
$line str_replace(",""."$line);
                
                
// FILTRO DEI NUMERI TOGLIENDO IL PUNTO E SOSTITUENDO LA VIRGOLA CON IL PUNTO 
                
$linenumber str_replace("."""$line);
                
$linenumber str_replace(",""."$line);
                
$linenumbers explode($fieldseparator,$linenumber);
                
                
//EXPLODE DELLA STRINGA
                
$linearray explode($fieldseparator,$line);
                
$linemysql implode("','",$linearray);
             
                
$codice trim($linecodice[0]);
                
$descrizione trim($linearray[1]);
                
$um trim($linearray[5]);
                
$listino_1 trim($linenumbers[7]);
                
$prezzo_fornitore trim($linenumbers[22]);
                                     
                if(
$codice!="" && $descrizione!="") {
                    
$stmt $this->db->prepare("INSERT INTO tab_prodotti (codice, descrizione, um, listino_1, prezzo_fornitore) VALUES (?, ?, ?, ?, ?)");
                    
$stmt->bind_param('sssdd'$codice$descrizione$um$listino_1$prezzo_fornitore);
                    
$stmt->execute();
                } 
funziona tutto perfettamente, ad eccezione del fatto che se trova un importo superiore a 999,99 dovrebbe rimuovere il punto e trasformare la virgola in un punto, ma non lo fa. Quindi mi trasforma 1.400,00 in 1.40.
Spero che qualcuno possa aiutarmi a capire cosa sbaglio. grazie!