Heim  >  Artikel  >  Backend-Entwicklung  >  Ausführliche Erklärung und Dateidownload der Deduplizierungsmethode in PHP

Ausführliche Erklärung und Dateidownload der Deduplizierungsmethode in PHP

小云云
小云云Original
2018-03-29 09:30:501456Durchsuche

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[&#39;no&#39;]."学号已经存在"."<br>";
                }else{   
                    $arrno[]=$row[&#39;no&#39;];
                    $arr[]=$row;
                    // dump($arr);
                    // exit;
                    echo $row[&#39;no&#39;]."学号已经导入"."<br>";
                }
                if(count($arr)==1000){
                    $model->addAll($arr);
                    unset($arr);
                }
            }
            dump($arr);
            if(count($arr)>0){
                $model->addAll($arr);
            }
            $this->show(&#39;导入成功&#39;);
            // $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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn