Hinzufügen Stückliste in eine CSV-Datei mit fputcsv

Habe ich eine einfache CSV-Datei, die generiert wird, enthält die fremdsprachlichen Zeichen. Ich habe festgestellt, dass wenn ich nicht über einen Byte-Order-Markierung, die ausländischen Zeichen, die nicht erscheinen korrekt in Excel (aber Sie scheinen in Ordnung, wenn eine BOM vorhanden ist).

Wie kann ich ein BOM an den Anfang der Datei, wenn es zuerst erstellt? Ich habe versucht, die folgenden und es funktioniert nicht :-/

function processForm($competition, $competitionEntry) {
    $BOM = "\xEF\xBB\xBF"; //UTF-8 BOM

    $filename = $competition->ID.".csv";
    $file = "entries/".$filename;     

    $fields = array_keys($competitionEntry);
    $submittedForm = $competitionEntry;

    if(file_exists($file)) {
        $fp = fopen($file, 'a');
        if($fp && 
            fputcsv($fp, $submittedForm) && 
            fclose($fp)) {
            return true;
        } 
    } else { //CREATE NEW FILE
        $fp = fopen($file, 'w');
        if($fp && 
            fputcsv($fp, $BOM) && //WRITE BOM TO FILE   
            fputcsv($fp, $fields) &&
            fputcsv($fp, $submittedForm) &&
            fclose($fp)) {     
            return true;
        } 
    }
    return false;
}
  • fwrite() $Stückliste, um die Datei sofort nach Ihrem fopen() (obwohl es nicht eine gute Idee, in den append).... verwenden Sie nicht fputcsv() zu versuchen, und schreiben Sie es
  • Wenn Sie möchten, dass in einer Antwort werde ich akzeptieren. Es funktionierte ein Leckerbissen. Ansonsten werde ich es später tun. Lassen Sie es mich wissen.
Schreibe einen Kommentar