이 글에서는 주로 PHP의 중복 제거 방법과 파일 다운로드에 대한 자세한 설명을 공유합니다. PHP에서 파일을 가져오는 과정에서 중복 이벤트가 자주 발생하므로 중복 제거 후 다운로드가 필요합니다.
1.생각
먼저 기본 키를 저장할 배열과 빈 배열을 설정합니다. 파일을 구문 분석한 후 전달하려는 배열에 기본 키 배열이 있는지 확인합니다. 첨부파일 업로드 디렉터리를 설정합니다. 업로드합니다.
2. 방법
데이터베이스 자체에 데이터가 있으면 가져온 데이터를 복제하기 쉽기 때문에 먼저 기본 키 배열에 기본 키를 넣은 다음 새로운 1차원 배열을 만든 다음 파싱합니다. csv로 파싱된 경우 위에서 정의한 키 이름 배열을 파싱된 csv(array_combine)와 병합해야 합니다. 새 배열을 생성합니다. 그런 다음 가져올 데이터의 기본 키와 데이터베이스 자체가 중복되어 있는지(in_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(); } }
관련 권장 사항:
위 내용은 PHP의 중복제거 방법에 대한 자세한 설명 및 파일 다운로드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!