Ho una textarea che invia al mio database su un sito web che funziona correttamente. Ma quando creo un CSV (tramite PHP) dal mio database, tutte le interruzioni di riga si confonderanno con il CSV risultante. Qualsiasi lettore CSV interpreterà l'interruzione di riga dall'input in una nuova riga.Come posso eliminare tutte le interruzioni di riga per generare un CSV corretto?
ho provato i seguenti approcci:
incapsulando i campi tra virgolette.
questo:
$field = str_replace(array('\n', '\r', '\r\n', '\n\r'), ',', $original_field);
anche questo:
$field = strip_tags(nl2br($original_field));
Combinando tutti gli approcci di cui sopra.
In ogni caso, il risultato finale sarà ancora un CSV incasinato che si romperà su un'interruzione di linea immessi dall'utente. Sono riuscito a bloccare le nuove interruzioni di riga dall'area di testo, ma ci sono molte presentazioni legacy che hanno bisogno di me per risolvere questo problema anche sul lato CSV.
Perché non funziona? Come posso risolvere questo problema?
Come si sta creando il CSV? –
Le voci del database sono già in formato CSV? –
No. Sto generando tramite fwrite. Ma dopo aver letto le risposte, potrei ripensare e generare tramite putcsv. –