Есть скрипт, который разбирает из CSV файла данные.
Проблема в том, что поле в последнем столбце игнорируется, скрипт не видит в нем информации
CSV фал выглядит следующим образом:
Категория;"Название товара";Производитель;"Цена товара";"Количество на складе";"Ссылка на фотографию (big)";"Ссылка для покупки товара";"Краткое описание";"Полное описание";"Ссылка на фото (small)";Активность;Идентификатор
Bigger;"Soft";"Orion";45.94;10;http://www.ez.by/uplo1b167c898391dac19.jpg;http://www.ez.by/soft/;"Маленькое описание...";"Большое описание";;on;5663060000
Именно поле с идентификатором и не обрабатывается. Если после идентификатора добавить разделитель ";", то есть сделать его не последним стобцом, то данные из него обрабатываются.
Как заставить обрабатывать информацию в последнем столбце?
Заранее спасибо.
Код скрипта:
if((($handle = fopen($local, "r")) !== FALSE) && $r) {
$headers = fgetcsv($handle, 0, ';', '"');
if ((int) $this->request->post['pointer'] == '0' ) { // Если это первая цикл - обнуляем количество товара
if (!$this->request->post['reset_qty']) {
$this->model_catalog_csvsynchroniz->resetQantity($shopname);//Обнуляем количество товара
}
}else{
fseek($handle,$this->request->post['pointer']);// Если не первый - выставляем указатель на то место где закончили
}
$k = 0;
while((($data = $FGetCSV->fgetcsv($handle, 30000, ';', '"')) !== FALSE ) && ($k < $inpart_quantity)) {
$num = count($data);
$pairs = array();
$product_model = $data[$this->request->post['model_number']];
if ($product_model != '') {
$p_exist = $this->model_catalog_csvsynchroniz->productExist($product_model, $shopname);//Проверяем существование товара
if ($p_exist->row){// Если существует делаем обновление
$data_old = array();
$product_id = $p_exist->row['product_id'];
$update_data = $this->get_data($headers,$data,$num,$product_model,$data_old,$nacenka,$optprice,$this->request->post);//Меняем поля из файла csv
$this->model_catalog_csvsynchroniz->updateProduct($update_data,$product_id);
}
/* else { // Если нет - создаем новый
$default_data = $this->default_data($product_model);//Заливаем дефолтные данные товара
$add_data = $this->get_data($headers,$data,$num,$product_model,$default_data,$nacenka,$this->request->post);//Меняем поля из файла csv
$this->model_catalog_product->addProduct($add_data);
} */
}
$k++;
}
$pointer = ftell($handle);
$eof_flag = feof($handle) + 0;
fclose($handle);
$json['info'] = sprintf($this->language->get("text_updated"), $k+1);
$json['updated'] = $k;
$json['pointer'] = $pointer;
$json['eof_flag'] = $eof_flag;
$this->cache->delete('product');
} else {
$json['warning'] = $this->language->get('file_error');
}