From b25e1738a6dcf74e1b28baa9d16ac1cf4043081b Mon Sep 17 00:00:00 2001 From: Kateryna Degtyariova Date: Tue, 17 Aug 2021 12:12:49 +1000 Subject: [PATCH] MDL-72342 groups: Use get_columns() to handle BOM in CSV Ensuring that BOM was properly removed from input CSV file by using get_columns() instead of parsing the raw data. --- group/import.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/group/import.php b/group/import.php index 58f405bd0cd..b50f880d738 100644 --- a/group/import.php +++ b/group/import.php @@ -61,8 +61,6 @@ if ($importform->is_cancelled()) { $text = $importform->get_file_content('userfile'); $text = preg_replace('!\r\n?!', "\n", $text); - $rawlines = explode("\n", $text); - require_once($CFG->libdir . '/csvlib.class.php'); $importid = csv_import_reader::get_new_iid('groupimport'); $csvimport = new csv_import_reader($importid, 'groupimport'); @@ -95,7 +93,9 @@ if ($importform->is_cancelled()) { ); // --- get header (field names) --- - $header = explode($csvimport::get_delimiter($delimiter), array_shift($rawlines)); + // Using get_columns() ensures the Byte Order Mark is removed. + $header = $csvimport->get_columns(); + // check for valid field names foreach ($header as $i => $h) { $h = trim($h); $header[$i] = $h; // remove whitespace