【发布时间】:2021-10-09 20:22:26
【问题描述】:
我正在使用以下脚本在 CI 3 中导入 CSV 文件,但它部分导入,未导入 csv 中的所有行正在导入。
$content = $this->csv_reader->parse_file($_FILES['products']['tmp_name']);
//print_r($content);
if (count($content) > 0) {
function clean($string) {
//$string = str_replace(' ', '-', $string); // Replaces all spaces with hyphens.
return preg_replace('/[^ .@A-Za-z0-9\-\&\,\']/', '', $string); // Removes special chars.
}
foreach ($content as $csv_arr) {
$insert_csv_arr = array(
'brand_name' => clean(rtrim($csv_arr['BrandName'])),
'keyword' => clean(rtrim($csv_arr['keyword'])),
'amz_sold_by' => clean(rtrim($csv_arr['amzsoldby'])),
'seller_code' => clean(rtrim($csv_arr['SellerCode'])),
'product_link' => clean(rtrim($csv_arr['productlink'])),
'asin' => clean(rtrim($csv_arr['asin'])),
);
//print_r($insert_csv_arr); die();
$this->productmodel->insert($insert_csv_arr);
}
我也使用set_time_limit 增加了时间,但它不起作用。
例如,我有一张包含 465 种产品的表格,但只导入了 161 种产品。
我想知道CSV没有完全导入的可能原因是什么?
【问题讨论】:
-
您的 PHP 最大执行时间设置为多少?
-
我们知道脚本正在停止,所以如果您注释掉您的插入并取消注释前面的 print_r 语句,您会得到所有 465 个条目。然后检查第 162 行,因为它可能会把事情搞砸。还要查看您的错误日志。
-
@TimBrownlaw in print_r 仅打印行...不是全部
-
@HamzaZafeer 对不起,我很抱歉 - 您需要在 foreach 循环之外执行此操作以检查读取的总行数,以便查看它们。
-
@HamzaZafeer 你检查你的错误日志了吗?
标签: php csv import codeigniter-3 import-csv