Maison > Article > développement back-end > Explication détaillée et téléchargement de fichiers de la méthode de déduplication en PHP
Cet article partage principalement avec vous l'explication détaillée de la méthode de déduplication et du téléchargement de fichiers en PHP Lors du processus d'importation de fichiers en PHP, des événements en double sont souvent rencontrés, nous devons donc dédupliquer puis télécharger.
1. Réflexions
Configurez d'abord un tableau pour stocker les clés primaires et un tableau vide. Analysez le fichier, puis vérifiez si le tableau de clés primaires du tableau à transmettre existe. Définissez le répertoire de téléchargement des pièces jointes. à télécharger.
2. Méthode
S'il y a des données dans la base de données elle-même, il est facile de dupliquer les données importées, alors placez d'abord la clé primaire dans un tableau de clés primaires, puis créez-en une nouvelle. -dimensionnel, puis analysez le csv. S'il est analysé, vous devez fusionner le tableau défini ci-dessus comme nom de clé avec le csv analysé (array_combine). Générez un nouveau tableau. Ensuite, vous devez déterminer si la clé primaire des données à importer et la base de données elle-même sont dupliquées (in_array). Si elles sont dupliquées, cela indiquera que le numéro d'étudiant a été dupliqué. Sinon, stockez le numéro d'étudiant dans le tableau de clé primaire et stockez le contenu des données dans le tableau initialement défini.
3. Code
if($fp){ $fields=array('no','name','sex'); $model=M('student'); $arrno=$model->getField('no',true); $arr=array(); while(($row=fgetcsv($fp,1000,","))!==false){ $row=array_combine($fields, $row); if(in_array($row['no'],$arrno)){ echo $row['no']."学号已经存在"."<br>"; }else{ $arrno[]=$row['no']; $arr[]=$row; // dump($arr); // exit; echo $row['no']."学号已经导入"."<br>"; } if(count($arr)==1000){ $model->addAll($arr); unset($arr); } } dump($arr); if(count($arr)>0){ $model->addAll($arr); } $this->show('导入成功'); // $this->download(); }
Télécharger
public function download(){ $file_name=$file; $file_dir="/Public/Download/"; if(!file_exists($file_dir . $file_name)){ echo "文件找不到"; exit(); }else{ $file=fopen($file_dir, $file_name,"r"); Header("Content-type:application/octet-stream"); Header("Accept-Ranges:bytes"); Header("Accept-Length:".filesize($file_dir.$file_name)); Header("Content-Disposition:attachment;filename".$file_name); echo fread($file,filesize($file_dir.$file_name)); fclose($file); exit(); } }
Recommandations associées :
Comment implémenter la déduplication de tableau en PHP Code
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!