백엔드 개발 PHP 튜토리얼 php读取excel文件,输出的值乱码解决方法

php读取excel文件,输出的值乱码解决方法

Jun 13, 2016 pm 01:37 PM
data quot

php读取excel文件,输出的值乱码
$handle = fopen("./home.csv","r");
 while($items = fgetcsv($handle,1000)){
  foreach($items as $k=>$v){
  $v = iconv('gb2312','utf-8',$v); 
  var_dump($v);
  }  
 }

------解决方案--------------------
明白了,你说的是这个问题
这是 php5.3 的一个BUG,php5.2 是正常的

你得换个方法解决了
------解决方案--------------------

PHP code
$fname = $_FILES['MyFile']['tmp_name'];//获取上传的CSV文件
    $handle=fopen("$fname","r");//打开文件
    
    //判断导入文件类型是否为csv
    //如果为csv继续执行
    if($_FILES['MyFile']['type'] !='application/vnd.ms-excel')
    {
    if($_FILES['MyFile']['type'] != 'text/comma-separated-values')
      {
        echo "<script>alert('您上传的文件类型不符,请重新上传');window.location='subHotel_import.php';</script>";exit();
      }
    }
      
        $num = 1;
        $total_num = 100;//设置每次添加的数据条数
        //删除表中原有数据
       $db->query("delete from hotel_activities_2");
      //打开导入的csv
      //循环添加到表中
      while(!feof($handle))
        {
                        
            $content = fgets($handle);
            $data =  preg_split("/,/",$content);
          
            if($data[0] =='')
            {    
               continue;
            }     
            $subHotel_id = preg_replace('/[^0-9]/','',$data[0]);
            $subHotel_type= (int)preg_replace('/[^0-9]/','',$data[4]);
            if($num == $total_num )
            {
                
                $num=1;
                   $values .=  " ($subHotel_id,'".$data[1]."','".$data[2]."','".$data[3]."',$subHotel_type),";
                   $values = rtrim($values,',');                
                $sql ="insert into hotel_activities_2 (hotel_id,start_date,end_date,content,s_type) values " .$values;                
                $aaa = $db->query($sql);
                
                $values ='';
            }
            else 
            {
                $values .=  " ($subHotel_id,'".$data[1]."','".$data[2]."','".$data[3]."',$subHotel_type),";
                $num++;            
            }               
        }
        if(mysql_error!==1){
            $values = rtrim($values,',');
            $sql ="insert into hotel_activities_2 (hotel_id,start_date,end_date,content,s_type) values " .$values;     
            $db->query($sql);               
                echo "<script>alert('导入成功!!!');window.location='subHotel_query_file.php';</script>";
            }else
            {
            echo "<script>alert('导入失败!!!');window.location='subHotel_import.php';</script>";
            }
            
                             
    fclose($handle);
<br><font color="#e78608">------解决方案--------------------</font><br>在 csv 格式标准中:字符串是需要用双引号括起的,但微软的工具软件却偏偏不加这个双引号<br>在 php5.3 以前的版本中,php 也认同这种做法<br>但自 php5.3 起,微软摆出了不合作姿态,于是 fgetcsv 也就残废了
<br><font color="#e78608">------解决方案--------------------</font><br>读取excel数据要用到一个插件,直接这样读取肯定是不行的。<br>下面这个是将ecxcel数据读取到数据库的方法:<br>7.$handle = fopen (”test.csv”,”r”); <br>8.$sql=”insert into scores(idcard,names ,num,sex,nation,score) values(’”; <br>9.while ($data = fgetcsv ($handle, 1000, “,”)) { <br>10.$num = count ($data); <br>11.for ($c=0; $c 12.if($c==$num-1){$sql=$sql.$data[$c].”‘)”;break;} <br>13.$sql=$sql.$data[$c].”‘,’”; <br>14.} <br>15.print “”; <br>16.echo $sql.””; <br>17.$db->query($sql); <br>18.echo “SQL语句执行成功!”; <br>19.$sql=”insert into scores(idcard,names ,num,sex,nation,score) values(’”; <br>20.} <br>21.fclose ($handle); <br>22.$time_end = getmicrotime();
                 
              
              
        
            
로그인 후 복사
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 Jun 13, 2016 am 10:23 AM

php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code

데이터 폴더에는 어떤 데이터가 있나요? 데이터 폴더에는 어떤 데이터가 있나요? May 05, 2023 pm 04:30 PM

데이터 폴더에는 소프트웨어 설정 및 설치 패키지와 같은 시스템 및 프로그램 데이터가 포함되어 있습니다. 데이터 폴더의 각 폴더는 데이터 파일이 파일 이름인 Data 또는 명명된 데이터를 참조하는지 여부에 관계없이 다양한 유형의 데이터 저장 폴더를 나타냅니다. , 모두 시스템이나 프로그램에 의해 사용자 정의된 데이터 파일입니다. 데이터는 데이터 저장을 위한 백업 파일입니다. 일반적으로 meidaplayer, 메모장 또는 워드로 열 수 있습니다.

mysql 로드 데이터가 왜곡되면 어떻게 해야 합니까? mysql 로드 데이터가 왜곡되면 어떻게 해야 합니까? Feb 16, 2023 am 10:37 AM

잘못된 mysql 로드 데이터에 대한 해결 방법: 1. 잘못된 문자가 있는 SQL 문을 찾습니다. 2. 문을 "LOAD DATA LOCAL INFILE "employee.txt" INTO TABLE EMPLOYEE 문자 집합 utf8;"으로 수정합니다.

xdata와 데이터의 차이점은 무엇입니까 xdata와 데이터의 차이점은 무엇입니까 Dec 11, 2023 am 11:30 AM

차이점은 다음과 같습니다. 1. xdata는 일반적으로 독립변수를 나타내고, data는 전체 데이터 세트를 나타냅니다. 2. xdata는 주로 데이터 분석 모델을 구축하는 데 사용되는 반면, data는 데이터 분석 및 통계에 사용됩니다. 회귀 분석, 분산 분석, 예측 모델링의 경우 다양한 통계 방법을 사용하여 데이터를 분석할 수 있습니다. 4. xdata는 일반적으로 데이터 전처리가 필요하며 데이터에는 완전한 원본 데이터가 포함될 수 있습니다.

판매보다 더 많은 수익: Humane Ai Pin이 상업적 재앙이 되고 있습니다. 판매보다 더 많은 수익: Humane Ai Pin이 상업적 재앙이 되고 있습니다. Aug 08, 2024 pm 01:14 PM

Humane Ai Pin이 출시된 직후, 원래 광고된 기능의 대부분이 제대로 작동하지 않거나 단순히 누락되었으며, 배터리 수명이 부족했기 때문에 AI 장치가 시장에 출시될 준비가 전혀 되어 있지 않다는 신랄한 리뷰가 나왔습니다.

AI 프로젝트 실패율은 상위 80%입니다. 연구에서는 문제 인식이 부족하고 주요 문제 중에서 최신 기술 동향에 초점을 맞춘 것으로 나타났습니다. AI 프로젝트 실패율은 상위 80%입니다. 연구에서는 문제 인식이 부족하고 주요 문제 중에서 최신 기술 동향에 초점을 맞춘 것으로 나타났습니다. Aug 31, 2024 am 12:59 AM

모든 사람과 그들의 이모는 부풀려진 이익 마진과 마케팅 과대 광고를 찾아 AI 열차에 뛰어드는 것 같습니다. 이러한 AI 과대 광고의 대표적인 예로 AMD의 최근 Ryzen 리브랜딩을 살펴보세요. RAND가 실시한 최근 ​​연구에서는 다음과 같은 사실이 밝혀졌습니다.

MySQL은 미친 오류 로그를 작성합니다 MySQL은 미친 오류 로그를 작성합니다 Feb 18, 2024 pm 05:00 PM

핵심 비즈니스 데이터베이스인 버전은 MySQL8.34 Community Server Edition입니다. 이 데이터베이스 서버의 오류 로그는 출시 이후 매우 빠르게 증가하여(아래 그림 참조) 24시간마다 10G 이상의 용량으로 증가했습니다. 장애알람이 발생하였고, 정상적인 업무접근에는 지장이 없었기 때문에 관련 인력의 MySQL 서비스 재시작을 허용하지 않았습니다. 이러한 상황을 고려하여 매일 밤 정해진 시간에 이러한 로그를 정리하는 자동 예약 작업을 설정해야 했습니다. 특정 작업의 경우 시스템 명령줄에서 "crontab-e"를 실행하고 다음 텍스트 줄을 추가합니다: 0001***echo>/data/mysql8/data/mysql_db/mysql.log 저장하고 편집 모드 종료

vue 컴포넌트의 데이터는 함수가 될 수 없나요? vue 컴포넌트의 데이터는 함수가 될 수 없나요? Dec 19, 2022 pm 05:22 PM

아니요, vue 구성 요소의 데이터는 함수여야 합니다. Vue의 컴포넌트는 재사용을 위해 사용됩니다. 데이터 재사용을 방지하기 위해 함수로 정의됩니다. vue 컴포넌트의 데이터 데이터는 서로 분리되어 서로 영향을 미치지 않아야 하며, 나중에 컴포넌트의 데이터 데이터가 재사용되는 위치에 변경될 때 데이터 데이터를 한 번씩 복사해야 합니다. 다른 데이터는 복사됩니다. 재사용된 로컬 컴포넌트의 데이터 데이터가 영향을 받지 않으면 data 함수를 통해 컴포넌트의 상태로 객체를 반환해야 합니다.

See all articles