Come posso fare PHP fgetcsv () per riconoscere la (CR) carattere di nuova linea di Mac Classic?
Domanda
Io uso questo codice per ottenere il numero di colonne da un file CSV:
$this->dummy_file_handler = fopen($this->config['file'],'r');
if ($dataset =fgetcsv($this->dummy_file_handler))
{
$this->number_of_columns = count($dataset);
}
Funziona bene a meno che il file viene esportato con Excel per Mac 2011 dal momento che il carattere di nuova riga è quindi Mac Classic (CR) , che fgetcsv
non riconosce.
Se manualmente modificare il ritorno a capo da Mac Classic (CR) per Unix (LR), allora funziona, ma ho bisogno di questo per essere automatizzato.
Come posso fare fgetcsv
riconoscere il carattere di nuova linea di Mac Classic (CR)?
Altri suggerimenti
Se la risposta di Saul non funziona, mi piacerebbe scrivere un semplice script per leggere nel file tutto in una volta e str_replace all \ r \ n, lo scarico i risultati in un nuovo file, quindi fgetcsv'ing che nuovo file .
Trovo divertente che questi termini vengono dai giorni di utilizzo di macchine da scrivere:
\ N = Line Feed (LF) - fa avanzare la carta di una riga
.
\ R = Carriage Return (CR) -. Ritorna il carrello verso il lato sinistro della macchina da scrivere