samedi 7 novembre 2020

CSV league showing some space at the beginning of the string even after being trimmed

I am using https://csv.thephpleague.com/ and the code to read csv is:

if (!ini_get("auto_detect_line_endings")) {
    ini_set("auto_detect_line_endings", TRUE);
}

$csv = Reader::createFromPath($path, 'r');
$input_bom = $csv->getInputBOM();
if ($input_bom === Reader::BOM_UTF16_LE || $input_bom === Reader::BOM_UTF16_BE) {
    $csv->addStreamFilter('convert.iconv.UTF-16/UTF-8');
}
$csv->skipEmptyRecords();
$csv->setHeaderOffset($header_row);
$csv_header = $csv->getHeader();

/**unit_number **/
$unit_number_key = array_search('unit_number', $request->row);
$unit_number_results = $csv->fetchColumn($unit_number_key);
$unit_number_lists = iterator_to_array($unit_number_results, false);
if($header_row > 0){
    $unit_number_lists = array_slice($unit_number_lists,$header_row);
}
$unitNumbers = array();
$unit_numbers = array_filter(array_unique($unit_number_lists));

foreach($unit_numbers as $uk => $uv){
    $r_trimmed_uv = trim($uv);
    $str_len = strlen($r_trimmed_uv);
    if(!isset($unitNumbers[$str_len])){
        $unitNumbers[$str_len] = $r_trimmed_uv;
    }
dd($unitNumbers);

On dd it shows results as:

enter image description here

Here, we could confirm that there are 10 characters (6 space) and (4 digits). How could I fix it, I don't know if it is encoding in a different format and that's the issue or if I am missing to add some line as per CSV. But, I am not being able to remove this space from here.

And, here is the sample file: https://drive.google.com/file/d/1i3ry8AoGzfNG-K6AWpWvhzSQ8QkreOB0/view?usp=sharing



via Chebli Mohamed

Aucun commentaire:

Enregistrer un commentaire