>  기사  >  백엔드 개발  >  PHP의 중복제거 방법에 대한 자세한 설명 및 파일 다운로드

PHP의 중복제거 방법에 대한 자세한 설명 및 파일 다운로드

小云云
小云云원래의
2018-03-29 09:30:501533검색

이 글에서는 주로 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[&#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();
       }
    }

관련 권장 사항:

배열 중복 제거를 구현하는 PHP 메서드 코드

위 내용은 PHP의 중복제거 방법에 대한 자세한 설명 및 파일 다운로드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.