Convertire CSV in array multidimensionale in PHP

Ecco un codice per leggere un file CSV in PHP e convertirlo in un array multidimensionale.

Prendo un classico file CSV, di cui per esempio mostro di seguito le prime 4 righe:

2018-10-05 05:54;45334;57732;22;
2018-10-05 05:55;45334;57732;22;
2018-10-05 05:56;45335;57733;22;
2018-10-05 05:57;45335;57733;22;

in cui ogni riga è formata da più campi separati da un punto e virgola (;). In PHP:

$fileName = "nome_del_file.csv"; //questo è il nome del file da caricare
$csvData = file_get_contents($fileName);
$Data = str_getcsv($csvData, "\n"); //scansiono le righe
foreach($Data as &$Row) {
$Row = str_getcsv($Row, ";"); //scansiono gli elementi in ogni riga, separati dal punto e virgola
}

Ora posso accedere a ogni elemento di ogni riga direttamente dalla variabile $Data, ad esempio $Data[0][1] (riga 0 posizione 1) conterrà il valore 45334. Eseguendo il comando print_r($Data) posso stampare a schermo per debug il contenuto dell’array, come mostrato qui sotto:

Array
(
[0] => Array
(
[0] => 2018-10-05 05:54
[1] => 45334
[2] => 57732
[3] => 22
)
//ecc...

Nel caso il separatore non sia il punto e virgola ma la virgola è sufficiente cambiarlo nell’istruzione:

$Row = str_getcsv($Row, ";");

che, nel caso della virgola usata come separatore, diventa:

$Row = str_getcsv($Row, ",");

Problema data WordPress e pubblicazione futura articoli

Capita talvolta che pubblicando degli articoli su WordPress non vengano pubblicati e vengano inseriti come pianificati. La prima cosa da controllare è nelle Impostazioni nella scheda Generali, per verificare che il fuso orario e l’ora di sistema siano corrette.

Nel caso apparentemente l’ora sia corretta, o ci siano degli errori sull’ora universale (UTC) indicata, è necessario intervenire sul server che ospita il sito, in quanto molto probabilmente c’è un problema con l’ora di sistema fornita da PHP.

Per risolvere, è sufficiente reinstallare il pacchetto tzdata, ad esempio su server CentOS (o con il gestore di pacchetti YUM) basta lanciare i seguenti comandi:

yum reinstall tzdata
systemctl restart httpd


Problema articoli programmati non pubblicati su WordPress

Può verificarsi talvolta un problema di pubblicazione saltata per gli articoli programmati su WordPress. Non è sempre facile capire la natura del problema, su un sito che gestisco per un cliente ha inziato a capitare dopo un aggiornamento di WordPress stesso. Molti siti e blog consigliano di concentrarsi sul file wp-cron.php, che si occupa della gestione delle operazioni ricorrenti in WordPress, tuttavia ho risolto affidandomi ai seguenti plugin:

WP Crontrol

WP Missed Schedule (The Original)

I due plugin non necessitano di particolari impostazioni, è sufficiente installarli e attivarli.

Questo sito utilizza cookie tecnici per il suo funzionamento. Cliccando su Accetta, scorrendo la pagina, navigando questo sito ne acconsenti l'uso e la tua scelta sarà memorizzata per 12 mesi. I contenuti presenti rappresentano l'opinione personale dell'autore, le guide e gli appunti sono da considerarsi indicativi e si declina ogni responsabilità derivante dall'applicazione delle indicazioni contenuti in essi. Maggiori informazioni sulla privacy e sui cookie (informativa estesa)

Questo sito utilizza i cookie per fornire la migliore esperienza di navigazione possibile. Continuando a utilizzare questo sito senza modificare le impostazioni dei cookie o cliccando su "Accetta" permetti il loro utilizzo.

Chiudi