PHP的Excel读取返回怪异的字符

我正在使用这个函数从csv文件读取行。

<?PHP $file_handle = fopen("test.csv", "r"); while (!feof($file_handle) ) { $line_of_text = fgetcsv($file_handle, 1024); echo $line_of_text[0] . $line_of_text[1]. $line_of_text[2] . "<BR>"; } fclose($file_handle); ?> 

而我正在得到这个

  PK!|l˜l [Content_Types].xml ¢( Ì”]KÃ0†ïÿCÉ4Ù&ˆÈº]øq©ç ˆÍé–&!'›Û¿÷4û@¤n zÓÐæœ÷}'4ïp¼jL¶„€ÚÙ‚õye`K§´ìmú”ß² £´Jg¡`k@6]^ §k ˜Q·Å‚Õ1ú;!°¬¡'ÈK3• ŒôfÂËr.g ½Þ(`c[ 6>@%&f+ú¼! `e÷›ÂÖ«`Ò{£K‰Túæ'o8u¦¬µÇ+Â`¢Ó¡ùÙ`Û÷B[ ´‚l"C|– aˆ•.Ìß›óÃ"”®ªt Ê•‹†v€£ Ö±1<¼'Úî¸ ø§bi蟤]_>'cðO8®ÿˆ#Òÿ "=$IæÈ`\À3¯v#z̹–Ôk ”gøª}ˆƒîÑ$8”(Nß…]d´Ý¹'!QÃ>4º.ßÞ'ÒètÃo·Ú¼S :¼EÊ×Ñ'ÿÿPK!µU0#õL _rels/.rels ¢( Œ'ÏNÃ0 ÆïH¼CäûênH¡¥»LH»!TÀ$îµ£$@÷ö„‚JcÛÑöçÏ?[ÞîæiTb/Nú(A±3b{×jxŸV b"giÇŽaWÝÞl_x¤”›b×û¨²‹‹º”ü#b4O ñìr¥'0QÊahÑ“¨eÜ”å=†¿P-<ÕÁj{ª>ú<ù²·4Mox/æ}b—NŒ@ž ;ËvåCf ©ÏÛ¨šBËIƒóœÓÉû"cž&Ú\Oôÿ¶8q"K‰ÐHàó<ߊs@ëë.Ÿh©ø½Î<⧄áMdøaÁÅ T_ÿÿPK!Þ ý(Ôxl/_rels/workbook.xml.rels ¢( ¼“ÏjÃ0 ÆƒÑ}q'ne”:½ŒA¯[÷&QâÐÄ6–ö'o?“Cº@É.¡ƒ$ü}?Чýá§ïÄjU%)´¥«ZÛ(ø8½><ƒ Ö¶Ò³¨`@‚Cq·ÃNsüD¦õ$¢Š%†Ù襤Ò`¯)qmœÔ.ôšcéuyÖ Ê õ'ýãšöO /îc)ÇwÚ‡œÝbñ ÿÿPK!«h&¨bq xl/workbook.xmlŒRËNÃ0 ¼#ñ –ï4©Ó·šTB€è!QÚ³‰7UÇŽl‡´ÏÆQKQ/œv×;ÏŒ³\+E¾Á:itJ‡ƒ˜Ð¹RïSú¹yy˜Qâ<ׂ+£!¥'pt•Ýß-[c _Æh—ÒÒûzE./¡ân`jи)Œ¸ÇÑî#W[à•¾R‹ãITq©iÏ°°ÿá0E!sx2ySö=‰Å=Êw¥¬Í–…T°í^×o¼BÝGE‰âÎ? éA¤tŒ£iáÏmêÇF*ÜΓ˜Ñ(»˜|·D@Áå7hïÌŽy±c“ ÙE±•Ðºßº'wR Ó¦t4ÃhOç)Á¡ ›¾L)›N稩?{¹/=Ò'É8îØ£+ú ^ *ÑÁÝGê _ª«k4€½]HlìZ ;†4»BcAß7èä ýuŽ'r®rŒª+AÄhÓ8h{w†ýK' ÇcÌxLÚÞœHïÚÖûï]Å›*$A°>–›¸í…J%›•ŠôaËËACMÒÛʈ÷¼ÆJꟉ&Mœ;žÖ4BÎe— tˆYÛ>c~4$ ”‡– 

我已经尝试了很多,但获得相同的输出。 有什么方法可以得到string?

提前致谢。

这不是一个CSV文件,它是一个ZIP文件(注意在开始的PK )。

这可能是一个xlsx文件(zip包内的xml中的excel),或者是你的名字是test.csv.xlsx或者是全名为test.csv.xlsx但是Windows隐藏了你真实的扩展名(如果你在Windows上)。

试着给你的csv文件的中文转换器

 $csvcontent = fgetcsv($handle, 1000,"\t"); 

其中“\ t”是你的行seperator.and我认为这不是一个CSV文件…无论是Zipped文件或.xlsx扩展文件,首先检查一次