]> git.mjollnir.org Git - moodle.git/commitdiff
Allow use of alternate delimiters in csv files
authorfiedorow <fiedorow>
Wed, 14 Apr 2004 20:46:39 +0000 (20:46 +0000)
committerfiedorow <fiedorow>
Wed, 14 Apr 2004 20:46:39 +0000 (20:46 +0000)
admin/uploaduser.php

index 87be5109583355de34331cbf2401c0523d3bd0b4..bb4d45cb24f3b39263c2b1126c8d5f968fe7cea0 100755 (executable)
     $struploadusers = get_string("uploadusers");
     $straddnewuser = get_string("importuser");
 
+    $csv_encode = '/\&\#44/';
+    if (isset($CFG->CSV_DELIMITER)) {        
+      $csv_delimiter = "\" . $CFG->CSV_DELIMITER;
+      $csv_delimiter2 = $CFG->CSV_DELIMITER;
+      if (isset($CFG->CSV_ENCODE)) {
+         $csv_encode = '/\&\#' . $CFG->CSV_ENCODE . '/';
+      }
+    } else {
+      $csv_delimiter = "\,";
+      $csv_delimiter2 = ",";
+    }
 
 /// Print the header
 
@@ -88,7 +99,7 @@
                          "group5" =>1);
 
         // --- get header (field names) ---
-        $header = split("\,", fgets($fp,1024));
+        $header = split($csv_delimiter, fgets($fp,1024));
         // check for valid field names
         foreach ($header as $i => $h) {
             $h = trim($h); $header[$i] = $h; // remove whitespace
             foreach ($optionalDefaults as $key => $value) {
                 $user->$key = addslashes($adminuser->$key);
             }
-           //Note: commas within a field should be encoded as &#44
-            $line = split("\,", fgets($fp,1024));
+           //Note: commas within a field should be encoded as &#44 (for comma separated csv files)
+           //Note: semicolon within a field should be encoded as &#59 (for semicolon separated csv files)
+            $line = split($csv_delimiter, fgets($fp,1024));
             foreach ($line as $key => $value) {
                 //decode encoded commas
-                $record[$header[$key]] = preg_replace('/\&\#44/',',',trim($value));
+                $record[$header[$key]] = preg_replace($csv_encode,$csv_delimiter2,trim($value));
             }
             if ($record[$header[0]]) {
                 // add a new user to the database