我正在调试Drupal模块(此模块,webform_import,将CSV数据导入数据库)并获取一些不可打印的字符,从而导致模块出错。这是我的调试代码
if($v == 'semester'){
dpm('found ' . $v);
}
else
{
dpm('not found ' . $v);
dpm(str_split($v));
}
dpm($v);
变量$ v通过以下函数
传递function _webform_import_csvfieldtrim($value) {
$value = trim($value);
// Strip off the beginning and ending quotes if necessary.
$value = preg_replace('/^".*"$/', '', $value);
// Remove control characters. Some editors add invalid EOL chars.
// fgetcsv does not handle unicode characters therefore we replace them
// manually. See http://bugs.php.net/bug.php?id=31632.
$value = str_replace('\x00..\x1F\xfe\xff', '', $value);
//$value = str_replace('/[\x00-\x1F\x80-\xFF]/', '', $value);
return $value;
}
根据输出,$ v打印'学期'但不等于字符串' semester'转换为数组时有11个字符而不是8个。如果_webform_import_csvfieldtrim函数出现问题,请告诉我。此外,我已将CSV文件的编码转换为UTF-8。
谢谢。
答案 0 :(得分:0)
前3个不可见的字符是BOM。我将编码更改为' UTF-8而没有BOM'并且该模块有效。