Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    Sostituire punto e virgola tra due virgolette

    Salve a tutti, ho il seguente problema e non so bene neanche come cercare una soluzione. Devo importare un file csv ed utilizzo il seguente codice:

    Codice PHP:
    while(!feof($file)) {
    $linea fgets($file);
    $array explode(";",$linea);
    $codice trim($array[3],"\"");
    $nome addslashes(trim($array[4],"\""));
    $desc addslashes(trim($array[5],"\"")); 
    etc...

    Sarebbe perfetto se non fosse per il fatto che il ";" viene utilizzato anche all'interno di quella che per me sarà la variabile $desc, quindi quando ad inizio codice genero l'array esplodendo la variabile $linea tramite il carattere di controllo che è appunto ";" l'array si crea in modo errato, provo a fare un esempio concreto... Supponiamo che la variabile linea contenga quanto segue:

    Codice PHP:
    $linea '"123";"nome articolo";"ma che bello; questo articolo"'
    Io avrei bisogno che l'array fosse popolato da 3 variabili e non 4 come invece avviene, dato che l'explode mi conta anche ";" che si trova tra "ma che bello" e "questo articolo".

    Immagino che si possa fare utilizzando le espressioni regolari ma sono completamente digiuno di quest'ultime e le guide che ho trovato non mi hanno aiutato.

  2. #2

    [RISOLTO] Sostituire punto e virgola tra due virgolette

    Come al solito è bastato distrarsi un po' dal codice per trovare la soluzione... Per l'importazione dei file csv non è indicato utilizzare explode(), esiste l'apposita funzione fgetcsv(). Ne indico l'utilizzo di seguito per lasciarla ai posteri che potranno adattarla secondo le proprie esigenze:

    Codice PHP:
    $file fopen("nome_file.csv","r");

    ini_set("auto_detect_line_endings"true);

    while ((
    $array fgetcsv($file3000";")) !== FALSE) {
    $codice addslashes(trim($array[0],"\""));
    $nome addslashes(trim($array[1],"\""));
    $desc addslashes(trim($array[2],"\""));
    }
    ini_set("auto_detect_line_endings"true); 

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.