php读取excel文件,输出的值乱码解决方法
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();

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

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

Le dossier de données contient des données du système et du programme, telles que les paramètres logiciels et les packages d'installation. Chaque dossier du dossier Données représente un type différent de dossier de stockage de données, que le fichier de données fasse référence au nom de fichier Données ou à l'extension Données nommées. , ce sont tous des fichiers de données personnalisés par le système ou le programme. Les données sont un fichier de sauvegarde pour le stockage des données. Généralement, elles peuvent être ouvertes avec meidaplayer, le bloc-notes ou Word.

Solution aux données de chargement MySQL tronquées : 1. Recherchez l'instruction SQL avec des caractères tronqués ; 2. Modifiez l'instruction en "LOAD DATA LOCAL INFILE "employee.txt" INTO TABLE EMPLOYEE jeu de caractères utf8 ;".

Les différences sont les suivantes : 1. xdata fait généralement référence à des variables indépendantes, tandis que data fait référence à l'ensemble des données ; 2. xdata est principalement utilisé pour créer des modèles d'analyse de données, tandis que data est utilisé pour l'analyse de données et les statistiques ; pour l'analyse de régression, l'analyse de variance, la modélisation prédictive, les données peuvent être analysées à l'aide de diverses méthodes statistiques ; 4. xdata nécessite généralement un prétraitement des données et les données peuvent contenir des données originales complètes ;

Tout le monde et leur tante semblent monter à bord du train de l'IA à la recherche de marges bénéficiaires gonflées et de battage publicitaire - il suffit de regarder le récent changement de marque Ryzen d'AMD comme un excellent exemple de ce battage médiatique de l'IA. Une étude récente menée par RAND a révélé que cela

Base de données métier principale, la version est MySQL8.34 Community Server Edition. Depuis son lancement, le journal d'erreurs de ce serveur de base de données a augmenté très rapidement (comme le montre la figure ci-dessous), et peut atteindre plus de 10 Go en capacité toutes les 24 heures. Étant donné qu'une alarme de panne s'est produite et que l'accès normal à l'entreprise n'a pas été affecté, le personnel concerné n'a pas été autorisé à redémarrer le service MySQL. Face à cette situation, j'ai dû mettre en place une tâche planifiée automatique pour nettoyer ces logs à heure fixe chaque nuit. Pour des opérations spécifiques, exécutez "crontab -e" sur la ligne de commande système et ajoutez la ligne de texte suivante : 0001***echo>/data/mysql8/data/mysql_db/mysql.log Enregistrez et quittez le mode édition.

Non, les données du composant vue doivent être une fonction. Les composants de Vue sont utilisés pour la réutilisation Afin d'empêcher la réutilisation des données, ils sont définis comme des fonctions. Les données du composant vue doivent être isolées les unes des autres et ne pas s'influencer les unes les autres. Chaque fois que le composant est réutilisé, les données doivent être copiées une fois. Plus tard, lorsque les données du composant sont modifiées dans un endroit réutilisé, les autres données seront copiées. Si les données des composants locaux réutilisés ne sont pas affectées, vous devez renvoyer un objet comme état du composant via la fonction de données.

Peu de temps après le lancement du Humane Ai Pin, des critiques cinglantes ont révélé que le gadget IA était tout sauf prêt pour le marché, car la plupart des fonctionnalités initialement annoncées ne fonctionnaient pas correctement ou manquaient tout simplement, la durée de vie de la batterie était
