diff --git a/admin/uploaduser.php b/admin/uploaduser.php index 5a5ecfe6c67..a13ebe74d4f 100755 --- a/admin/uploaduser.php +++ b/admin/uploaduser.php @@ -67,8 +67,11 @@ if ($um->preprocess_files() && confirm_sesskey()) { @apache_child_terminate(); } - //Fix mac/dos newlines $text = my_file_get_contents($filename); + //trim utf-8 bom + $textlib = new textlib(); + $text = $textlib->trim_utf8_bom($text); + //Fix mac/dos newlines $text = preg_replace('!\r\n?!',"\n",$text); $fp = fopen($filename, "w"); fwrite($fp,$text); diff --git a/lib/textlib.class.php b/lib/textlib.class.php index b8a570c619d..dd2626f81ee 100644 --- a/lib/textlib.class.php +++ b/lib/textlib.class.php @@ -322,5 +322,15 @@ class textlib { return $result; } + /** + * Removes the BOM from unicode string - see http://unicode.org/faq/utf_bom.html + */ + function trim_utf8_bom($str) { + $bom = "\xef\xbb\xbf"; + if (strpos($str, $bom) === 0) { + return substr($str, strlen($bom)); + } + return $str; + } } ?>