txt格式文件


Format txt file

我需要用php getcsv函数导入csv文件,但该文件格式不佳,无法导入。上传文件后,我想删除所有"文件里面有一个适当的文件与;

这是我的文件的一个例子:

"DENO;NAME;SURNAME;""BIRTH"";""ZIP"";CITY;E-MAIL;TELEPHONE"
"M;DAVID;BON;""1959-02-12 00:00:00"";75009;PARIS;email@gmail.com;010000000"
"M;DOE;JHON;""1947-02-02 00:00:00"";75008;PARIS;email@gmail.com;060000000"
"M;DAVE;Philippe;""1950-01-01 00:00:00"";75002;""PARIS"";email@gmail.com;070000000"

我想我需要读取文件的每一行,也许使用str_replace,但我不知道如何编写新文件…

假设您可以将代码转换为文本字符串,则只需替换/删除双引号。然后解析文本并将其转换为支持fputcsv()的格式。

当写入文件夹时,请确保检查您的用户是否有权限写入该文件夹(例如,如果父文件夹具有drwxr-xr-x权限,您可以使用chmod g+w folder_name来修复它)。

<?php
    // sample text to parse
    $some_text = '"DENO;NAME;SURNAME;""BIRTH"";""ZIP"";CITY;E-MAIL;TELEPHONE"
    "M;DAVID;BON;""1959-02-12 00:00:00"";75009;PARIS;email@gmail.com;010000000"
    "M;DOE;JHON;""1947-02-02 00:00:00"";75008;PARIS;email@gmail.com;060000000"
    "M;DAVE;Philippe;""1950-01-01 00:00:00"";75002;""PARIS"";email@gmail.com;070000000"';
    // remove quotes
    $final_text = str_replace('"', '', $some_text);
    // create array of rows by searching for new lines
    $data = str_getcsv($final_text, "'n");
    // create an empty array to save our final csv data
    $final_csv = array();
    // loop thru the array and save to the final csv data
    foreach ($data as $value) {
            // before saving to final csv data, split row into individual column items 
            $value_array = explode(";", $value);
            $final_csv[] = $value_array;
    }
    // helper debugger to show data before writing it
    echo "<pre>";
    print_r($final_csv);
    echo "</pre>";
    // create a new file for writing or open and truncate to 0
    $fp = fopen('file.csv', 'w');
    // write to file from final csv data
    foreach ($final_csv as $fields) {
        fputcsv($fp, $fields);
    }
    // close file
    fclose($fp);
?>