[PHP] CSV String o no?

O3B

Nuovo Utente
7 Gen 2018
3
0
1
Salve a tutti,

sono nuovo da queste parti. Sono capitato poiché riscontro un problema di comprensione nella gestione di file .CSV.
In PHP esistono due istruzioni per ottenere dati da un file CSV. La prima fgetcsv($file, $delimiter, eccc) e questo legge una riga dal CSV e rilascia un Array in cui ogni cella contiene un campo della riga letta.

Poi esiste la possibilità di utilizzare str_getcsv per file CSV String. In teoria la scelta del delimitatore non dovrebbe avere regole (',' o ';' ecc non dovrebbe cambiare il funzionamento). Eppure, se il mio file CSV ha come delimitatore il ';' la prima istruzione non funziona poichè non riesce a rilevare i diversi campi ma ne vede uno unico (quindi per accedere ai singoli campi devo applicare str_getcsv). E' come se fossi in caso di CSV String. Ma online non sono riuscito a trovare una definizione esatta.

Qualcuno più esperto mi sa dare una spiegazione plausibile?

Grazie in anticipo :)
 
Ultima modifica:

marino51

Utente Attivo
28 Feb 2013
3.203
207
63
Lombardia
PHP esistono due istruzioni
in realtà si possono usare altri modi
se il mio file CSV ha come delimitatore il ';' la prima istruzione non funziona poichè non riesce a rilevare i diversi campi
bisognerebbe vedere il codice, sicuramente con errore,
questi i 3 esempi con relativo risultato (csv delimitato da punto e virgola)
Codice:
<?php
require_once 'myUtils/show_vars.php';

$file = 'csv.csv';


$cell = array();
$csv = fopen($file, "r");
while( !feof($csv) )
    {
    $row    = fgets($csv);
    $cell[] = explode(';', $row);
}
fclose($file);
echo "<h2>fgets->explode</h2><br />".show_var($cell);


$cell = array();
$csv = fopen($file, "r");
while( !feof($csv) )
    {
    $cell[] = fgetcsv($csv,0,';','"');
}
fclose($file);
echo "<h2>fgetcsv</h2><br />".show_var($cell);


$cell = array();
$csv = fopen($file, "r");
while( !feof($csv) )
    {
    $row    = fgets($csv);
    $cell[] = str_getcsv($row, ';', '"');
}
fclose($file);
echo "<h2>str_getcsv</h2><br />".show_var($cell);
?>
upload_2018-1-7_13-15-1.png
upload_2018-1-7_13-15-38.png
upload_2018-1-7_13-16-12.png


ps, attento alle righe vuote nel csv
 
Ultima modifica:

O3B

Nuovo Utente
7 Gen 2018
3
0
1
Ciao Marino51,

grazie mille della risposta. Ho trovato l'errore. Tra i parametri del fgetcsv() avevo omesso la dimensione poichè online avevo letto che era diventata facoltativa e omettendola si impostava a zero (illimitata) in auto.
 
Discussioni simili
Autore Titolo Forum Risposte Data
F [PHP] Importare file CSV in HTML PHP 12
M [PHP] Importare file csv su server PHP 0
R php Somma valori in file csv PHP 2
E [PHP] confrontare stringhe importate da csv PHP 19
F [PHP] Importare file CSV in HTML PHP 3
L [PHP] Salvare csv da form dati PHP 5
A [Javascript] Select concatenata php csv Javascript 3
myprobsql [PHP] Esportare con PHP dati da MySQL a CSV PHP 2
giancadeejay [PHP] Update tabella da file csv PHP 3
L [PHP] Creare un uploader di file csv xls e ricercare i risultati PHP 0
giancadeejay [PHP] Aggiornare DB tramite UPLOAD file .csv PHP 39
C [PHP] Problema con creazione csv PHP 3
M [PHP] Esportare dati csv in cartella predefinita PHP 0
P [PHP] Aiuto per gestione file CSV PHP 24
N CSV doppi apici e punto e virgola da Excel tramite PHP PHP 2
felino Libreria PHP per conversione da Json a CSV PHP 4
M Tabella PHP con sorgente dati csv: selezionare le riche e compilare Form eMail PHP 1
I Modificare dati in tabella csv da php PHP 0
7 Script php che legge un dato da pagine web e lo confronta con un altro su csv... PHP 2
G importare csv file in tabella oracle XE da script php PHP 1
maxnegri cerco programmatore php per un lavoro di integrazione import csv nel mio sito PHP 1
A Csv e php PHP 0
F Cerco Hosting con VECCHIE versioni di php Hosting 0
Cosina Captcha php PHP 1
S passare un valore da un form a un file .php con metodo post PHP 4
N php msyql PHP 6
N php problemi a visualizzare video PHP 3
A menu a tendina php PHP 1
D protezione cartelle: blocco visualizzazione/scaricamento contenuto, ma abilitazione utilizzo dati da parte di file .php presenti sul sito Web Server 1
F Php date_diff PHP 1
K [PHP] Aggiungere caratteri ad una stringa in base alla lunghezza della stessa PHP 2
C Wp-admin a file php WordPress 5
Lino80 [Retribuito] Cerco programmatore php per modifica/inserimento funzione/valori da un plugin importer wordpress Offerte e Richieste di Lavoro e/o Collaborazione 0
csi Inviare file jpg in locale alla stampante con php PHP 0
M Passaggio variabili array php su un tasto jq PHP 3
E Php aggiornamento tabella PHP 9
G phpmailer e php 8.1 con estensione mysqli PHP 6
M Invio dati database via email php PHP 0
K [php] Problema con inner join PHP 4
K [php]form invio dati PHP 0
P Codifica caratteri speciali mysql php PHP 0
K [PHP] Problema con variabili concatenate. PHP 1
E Stampante termica escpos-php PHP 6
JeiMax Modifica codice php personalizzato PHP 2
G Come modificare un pdf in php PHP 1
U Link a doppio file PHP PHP 0
E PHP & jQuery PHP 8
N Passare array da php a javascript PHP 5
F Applicazione PHP/MySQL per prenotazioni: limitare il numero massimo di posti prenotabili PHP 20
L tipo boolean non funzionante su mariadb (mysql). E codice php 7.4. PHP 0

Discussioni simili