2015-10-30 5 views
0

Я отлаживаю модуль Drupal (этот модуль, webform_import, импортирует CSV-данные в базу данных) и получает некоторый непечатаемый символ, вызывающий ошибку в модуле. Вот моя отладка коданепечатаемые символы в строке - php

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; 
} 

Это выход моей отладки output of debugging code

Согласно выводу, $ V печатает ' semester ', но не равен строковому семестру, а при преобразовании в массив - 11 символов вместо 8. Пожалуйста, дайте мне знать, если что-то не так с функцией _webform_import_csvfieldtrim. Кроме того, я преобразовал кодировку CSV-файла в UTF-8.

спасибо.

ответ

0

Первые 3 невидимых символа - спецификация. Я изменил кодировку на «UTF-8 без спецификации», и модуль работал.

Смежные вопросы