事情中常用到一些导入数据的功能,本日就给大家先容一种办法,导入csv文件,此办法导入还是比较快的,但是也会存在一些问题。
比如csv格式的表格制作麻烦,我的方法须要调度表格的编码为utf-8格式,并且导入过程中须要增加一列标示 。
并且表名称不能为中文。
都是影响成功与否的主要成分。
对付导入数据我只做了大略的过滤处理。
下面就给大家先容一下吧。

代码如下:

//导入文件存放的详细位置。
含文件路径须要创建好文件

phpcsv数据导入PHP导入CSV格局的文件 jQuery

$fname = \公众./saveFile/\公众.$_FILES[\"大众myfile\"大众][\公众name\公众];

//copy(要复制的文件,复制文件的目的地)

$do = copy($_FILES[\"大众myfile\公众][\公众tmp_name\公众],$fname);

if($do){

//打开文件或者 URL r 以只读办法打开文件。

$handle=fopen(\"大众$fname\"大众,\公众r\"大众);

//循环输出csv中读取出的数据

while($data=_fgetcsv($handle,10000)){

//下面是查询商品是否存在存在将不插入进表

$sql = 'select id FROM '.$ecs->table('ssss').\"大众 WHERE id ='$data[1]'\"大众;

$res = $db->getOne($sql);

//如果不存在的都将插入到数据库中

if(!$res){

//过滤分外字符

if($data[3]){

//单双引号、反斜线及NULL加上反斜线转义

$data[3]=addslashes($data[3]);

}

$sql = \公众INSERT INTO \公众 . $ecs->table('ssss') .\"大众 (bl_num,id,c_id,g_name) VALUES ('$data[0]', '$data[1]', '$data[2]', '$data[3]')\"大众 ;

$db->query($sql);

}

}

fclose($handle);

}

//上传csv函数做一些表格的处理程序不做先容。
我也没细研究(呵呵)

function _fgetcsv(&$handle, $length = null, $d = ',', $e = '\"大众'){

$d = preg_quote($d);

$e = preg_quote($e);

$_line = \公众\"大众;

$eof=false;

while ($eof != true) {

$_line .= (empty ($length) ? fgets($handle) : fgets($handle, $length));

$itemcnt = preg_match_all('/' . $e . '/', $_line, $dummy);

if ($itemcnt % 2 == 0)

$eof = true;

}

$_csv_line = preg_replace('/(?: |[ ])?$/', $d, trim($_line));

$_csv_pattern = '/(' . $e . '[^' . $e . '](?:' . $e . $e . '[^' . $e . '])' . $e . '|[^' . $d . '])' . $d . '/';

preg_match_all($_csv_pattern, $_csv_line, $_csv_matches);

$_csv_data = $_csv_matches[1];

for ($_csv_i = 0; $_csv_i < count($_csv_data); $_csv_i++) {

$_csv_data[$_csv_i] = preg_replace('/^' . $e . '(.)' . $e . '$/s', '$1' , $_csv_data[$_csv_i]);

$_csv_data[$_csv_i] = str_replace($e . $e, $e, $_csv_data[$_csv_i]);

}

return empty ($_line) ? false : $_csv_data;

}

以上便是一个大略的导入csv表格功能,基本一些导入是没有问题的,后期有其他须要可以连续进行优化,如果朋友们以为那里有问题可以指示出来,不胜感激,感激。

作者:吾林爱分享