Visualizzazione risultati 1 fino 4 di 4

Discussione: Conversione array da stringa a intero

  1. #1
    CrimsonAlps non è connesso Neofita
    Data registrazione
    27-10-2019
    Messaggi
    5

    Predefinito Conversione array da stringa a intero

    Buongiorno e buona domenica a tutti,

    Non riesco a trovare la soluzione ad un semplice problema di conversione di un array da stringa a intero. Mi spiego: ho la necessità di importare da un file .txt la serie di numeri presenti al suo interno e trasferirli nel database MYSQL.

    Ho creato un file PROVA.txt composto da una sola riga, contenente: "5 6 7 8". Lo apro e creo una stringa contenente i valori della riga e chiudo il file:

    Codice PHP:
    $file="PROVA.txt";
    $open=fopen($file,"r");
    //Verifico che l'apertura del file .txt sia avvenuta correttamente://
    if(!$open) die ("Errore nella operazione con il file");
    //Leggo il contenuto del file e lo salvo all'interno di una stringa://
    $contenuto=fread($open,filesize($file));
    fclose($open);
    A questo punto la stringa la suddivido nei singoli elementi creando l'array:

    Codice PHP:
    $array=explode(' ',$contenuto);
    Se cerco di passare questo array in MYSQL in una tabella apposita chiamata sempre PROVA composta da 4 colonne mi da errore. Associo questo errore al fatto che ho assegnato alle colonne il tipo INT e quindi voglio convertire l'array prima di inviare a MYSQL. Realizzo allora:

    Codice PHP:
    foreach ($array as $value)
    $intArray [] = (integer) $value;
    var_dump($intArray);
    Vi mostro ciò che ottengo dalla var_dump:

    array(4) { [0]=> int(0) [1]=> int(6) [2]=> int(7) [3]=> int(8) }

    Mi ha correttamente convertito ogni elemento dell'array in intero ma l'elemento array[0] ha anche cambiato il valore da "5" a "0". A cosa è dovuto questa modifica che ovviamente non posso in alcun modo accettare?

    Grazie

  2. #2
    CrimsonAlps non è connesso Neofita
    Data registrazione
    27-10-2019
    Messaggi
    5

    Predefinito

    Aggiorno la discussione che è poi possibile chiudere.
    L'errore da me commesso non era nelle righe di codice, che sono corrette e permettono la conversione da stringa a intero, ma nel file di partenza .txt
    La codifica con cui l'avevo salvato era UTF-8 invece della standard ANSI e ciò non faceva lavorare correttamente il codice. Non so spiegare il motivo, non ho conoscenza teorica a sufficienza, ma ho risolto comunque il problema in questo modo.

  3. #3
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,894

    Predefinito

    BOM perché UTF-8 se abilitato dal tuo editor con il BOM inserisce tre caratteri è la conversione di xxx5 si trasforma intero a 0.
    String conversion to numbers
    Ultima modifica di darbula : 30-03-2020 alle ore 01.30.50

  4. #4
    CrimsonAlps non è connesso Neofita
    Data registrazione
    27-10-2019
    Messaggi
    5

    Predefinito

    Grazie per l'indicazione. Andrò ad approfondire anche questo aspetto.

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •