In diesem Artikel wird hauptsächlich die Deduplizierungsmethode und der Dateidownload in PHP ausführlich erläutert. Während des Dateiimportvorgangs in PHP treten häufig doppelte Ereignisse auf, sodass wir eine Deduplizierung und einen anschließenden Download durchführen müssen.
1. Gedanken
Richten Sie zunächst ein Array zum Speichern von Primärschlüsseln und ein leeres Array ein. Analysieren Sie die Datei und prüfen Sie dann, ob das Primärschlüsselarray im zu übergebenden Array vorhanden ist. Legen Sie das Verzeichnis zum Hochladen von Anhängen fest. hochladen.
2. Methode
Wenn Daten in der Datenbank selbst vorhanden sind, ist es einfach, die importierten Daten zu duplizieren. Fügen Sie also zuerst den Primärschlüssel in ein Primärschlüssel-Array ein und erstellen Sie dann ein neues -dimensionales Array und dann die CSV-Datei analysieren. Wenn sie analysiert wird, sollten Sie das oben als Schlüsselname definierte Array mit der analysierten CSV-Datei (array_combine) zusammenführen. Erzeugen Sie ein neues Array. Anschließend sollten Sie feststellen, ob der Primärschlüssel in den zu importierenden Daten und die Datenbank selbst dupliziert sind (in_array). Wenn sie dupliziert sind, wird angezeigt, dass die Matrikelnummer dupliziert wurde. Wenn nicht, speichern Sie die Schülernummer im Primärschlüssel-Array und den Dateninhalt im ursprünglich definierten Array.
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(); }
Download
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(); } }
Verwandte Empfehlungen:
So implementieren Sie die Array-Deduplizierung in PHP Code
Das obige ist der detaillierte Inhalt vonAusführliche Erklärung und Dateidownload der Deduplizierungsmethode in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!