php excel读取返回奇怪的字符

时间:2013-04-02 04:31:03

标签: 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û@¤nzÓÐæœ÷}’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&¨bqxl/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$”‡–

我尝试了很多其他功能,但获得了相同的输出。 有什么方法可以得到字符串吗?

提前致谢。

2 个答案:

答案 0 :(得分:7)

这不是CSV文件,而是ZIP文件(请注意开头的PK)。

这可能是一个xlsx文件(在zip包中的xml中有excel),你要么命名错误,要么全名test.csv.xlsx,但是Windows隐藏了你的真实扩展名(如果你在Windows上)。

答案 1 :(得分:1)

尝试为你的csv文件提供lineseperator,如

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

其中“\ t”是你的行分隔符。我认为它不是一个CSV文件...它是一个Zipped文件或类似.xlsx扩展文件,首先检查一次