php 文件批量重命名,php批量重命名文件

/**

* 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);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值