2013-04-02 71 views
2

我使用此函數從csv文件中讀取行。php excel閱讀返回奇怪的字符

<?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¡`[email protected]]^§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À$îµ£[email protected]÷ö„‚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àó<ߊ[email protected]ëë.Ÿ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*ÜÎ「˜Ñ(»˜|·[email protected]Áå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$」‡– 

我已經嘗試了許多其他的,但得到相同的輸出。 有什麼方法可以得到字符串?

在此先感謝。

+1

這看起來是一個zip文件,而不是一個csv文件。 –

回答

7

這不是一個CSV文件,它是一個ZIP文件(注意開頭的PK)。

這可能是一個xlsx文件(zip包內xml中的excel),您可能會誤稱或具有全名test.csv.xlsx,但Windows隱藏您的真實擴展名(如果您在Windows上)。

+0

我以excel的形式再次將文件保存爲csv,並且它可以正常工作。我記得之前我把它保存爲xlsx,然後重命名爲.csv,我認爲這是造成這個問題。非常感謝。 – RIK

1

試着給你的CSV文件的lineseperator像

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

其中「\ t」爲你的在線seperator.and我認爲這不是一個CSV文件...要麼它是一個壓縮文件或類似.xlsx擴展文件,首先檢查一次