0

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

Saroj Shrestha
  • 2,696
  • 4
  • 21
  • 45
  • Think is a non-breakable space, so try https://stackoverflow.com/questions/40724543/how-to-replace-decoded-non-breakable-space-nbsp – Nigel Ren Nov 07 '20 at 12:19
  • You can get rid by `$unitNumbers[$str_len] = preg_replace("/\s+/u", "", $r_trimmed_uv);` it will Sanitize every type of white spaces on your string – STA Nov 07 '20 at 12:35
  • @NigelRen Seems it is removing space, however, is there any way to detect if there is any such non-breakable space? I don't want to apply it to all columns. Only apply to those columns if it has such spaces if it is in the first row. So, is there any way to check if it is there? – Saroj Shrestha Nov 07 '20 at 12:45

0 Answers0