Prestashop 1.7-用于导入csv(产品)的脚本,其中的列具有多个由逗号分隔的值
我正在尝试导入具有以下结构的csv:Prestashop 1.7-用于导入csv(产品)的脚本,其中的列具有多个由逗号分隔的值,csv,import,prestashop,Csv,Import,Prestashop,我正在尝试导入具有以下结构的csv: name,reference,ean13,wholesale_price,price,quantity,category,manufacturer Samsung Galaxy A1,259304,7076963846220,380.50,410,20,3,Samsung Xiaomi MI Note 9,334573,23039239536421,499,530,30,1,Xiaomi 关键是,正如我所提议的,这是不可能的,因为csv有数千条记录,大约有
name,reference,ean13,wholesale_price,price,quantity,category,manufacturer
Samsung Galaxy A1,259304,7076963846220,380.50,410,20,3,Samsung
Xiaomi MI Note 9,334573,23039239536421,499,530,30,1,Xiaomi
关键是,正如我所提议的,这是不可能的,因为csv有数千条记录,大约有20条
<?php
header("Content-Type: text/html;charset=utf-8");
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
if (!defined('_PS_ADMIN_DIR_'))
define('_PS_ADMIN_DIR_', getcwd());
include(_PS_ADMIN_DIR_.'/../config/config.inc.php');
include(_PS_ADMIN_DIR_.'/functions.php');
include_once './tabs/AdminImport.php';
require_once(_PS_ADMIN_DIR_.'/init.php');
$context = Context::getContext();
$import = New AdminImportController();
loadProductsPost();
$import->productImport();
function loadProductsPost() {
$_POST = array (
'tab' => 'AdminImport',
'forceIDs' => '1',
'skip' => '1',
'csv' => 'products.csv',
'entity' => '1',
'separator' => ',',
'multiple_value_separator' => ',',
'iso_lang' => 'es',
'convert' => '',
'import' => '1',
"type_value" => array(
0 => 'name',
1 => 'reference',
2 => 'ean13',
3 => 'wholesale_price',
4 => 'price',
3 => 'quantity',
4 => 'category',
15 => 'manufacturer',
),
);
}
Tools::clearSmartyCache();
Tools::clearXMLCache();
Media::clearCache();
Tools::generateIndex();
?>
function csv_to_array($filename='', $delimiter=',')
{
if(!file_exists($filename) || !is_readable($filename))
return FALSE;
$header = NULL;
$data = array();
if (($handle = fopen($filename, 'r')) !== FALSE)
{
while (($row = fgetcsv($handle, 1000, $delimiter)) !== FALSE)
{
if(!$header)
$header = $row;
else
$data[] = array_combine($header, $row);
}
fclose($handle);
}
return $data;
}