/**
* 1) 通过读取csv文档(product_all.csv)中的产品编号获取目录1和目录2下图片对应编号的目录
*(目录1下图片路径:../imagezoom/id_1/image_xxx.jpg,
* 目录2下图片路径:../show/id_1/image_xxx.jpg),并将目录1和目录2下对应产品编号的文件夹
* 重命名为重新生成的编号,同时将获取到的数据和修改的数据导入新的csv文档(new.csv)中
* 2) 通过读取数据库中的 productimage 表 将数据中产品编号按①中修改后导入到
* 新的csv文件(image_processed.csv)中
*/
//要把字符转换成utf-8编码,首先当前页面也必须是utf-8的编码,否则会报错
$directory_1 = 'D:/数据/images/test/imagezoom'; //目录1
$directory_2 = 'D:/数据/images/test/show';//目录2
$handlefile_0 = 'D:/数据/images/test/product_all.csv'; //商品数据
$handlefile_1 = 'D:/数据/images/test/new.csv'; //用来接收重新编号过的商品数据
$file_0=fopen(iconv('UTF-8','gbk',$handlefile_0),'r');
$file_1 = fopen(iconv('UTF-8','gbk',$handlefile_1),'w');
require('../php_connect_test/connect_test.php');//数据库连接
$handlefile_image = 'D:/数据/images/test/image.csv';//用来读取表头的文件 全部内容:proImageId,piProductId,image,imageType (只有一行数据,这行代码可有可无)
$file_image = fopen(iconv('UTF-8','gbk',$handlefile_image),'r');
$handlefile_image_processed = 'D:/数据/images/test/image_processed.csv'; //接收 productimage 表处理后数据
$file_image_processed = fopen(iconv('UTF-8','gbk',$handlefile_image_processed),'w');
$listline = 0;
while(!feof($file_0)){
$data = fgetcsv($file_0);
if($data){
$suk = 10000 + $listline;
$result = mysqli_query($conn,'SELECT * from productimage pi where piProductId='.$data[0]); //查询
if(intval($listline)>0){
while($row = mysqli_fetch_array($result,MYSQLI_ASSOC)){
$row['piProductId']=$suk;
//print_r($row);
fputcsv($file_image_processed,$row);
}
$imagezoom_dir = $directory_1.'/'.$data[0];
$show_dir = $directory_2.'/'.$data[0];
$new0_dir = $directory_1.'/'.$suk;
$new1_dir = $directory_2.'/'.$suk;
if(!file_exists(iconv("utf-8", "gbk", $new0_dir))){
rename(iconv("utf-8", "gbk", $imagezoom_dir),iconv("utf-8", "gbk", $new0_dir));
rename(iconv("utf-8", "gbk", $show_dir),iconv("utf-8", "gbk", $new1_dir));
}
$data[0] = $suk;
$headImage = explode('/',substr($data[10],strlen('/productImg/show/'))); // 路径:/productImg/show/ 为 product_all.csv 中第11列的部分字段 格式如:/productImg/show/10913655629/587c7f2cNd6376666.jpg,该行代码通过 "/" 分割除 "/productImg/show/" 外的字段为数组
$headImage[0] = $data[0]; // 将重新编号后的产品编号传给$headImage 用于重新定义 product_all.csv 中的第11个字段
$data[10] = '/productImg/show/'.implode('/',$headImage);
}else{
fputcsv($file_image_processed,fgetcsv($file_image));
}
print_r($data[0]);
fputcsv($file_1,$data);
}
print_r('
');
$listline++;
}
fclose($file_1);
fclose($file_0);