用php 读CSV文件  :用户名,今天日志,今天在线,本周在线,今日主题,总发帖,总主题,精华帖,总日志,总积分,总在线/小时,本月在线
zql,,115,215,,343,122,1,22,1241,83,2425
hyf359709555,,65,110,,28,1,0,0,108,9,360
sophie,,0,0,,0,0,0,0,2,0,0
cbn,,,,,0,0,0,0,0,0,
罗布布,,10,10,,100,14,1,5,618,18,360
LingShame,,0,70,,22,1,0,1,133,6,270
MOOD,,50,100,,5,1,0,6,146,19,840
六岁就很酷,,0,0,,8,0,0,0,109,5,20
李伟, ,35,195,,92,31,5,1,421,17,875
可是我读出来
用的中文有一些有问题.
  /小时 
zql 115 215  343 122 1 22 1241 83 2425
so肥  15 50 14 50 0 75 5 60
     0 0 0 0 2 0 0
cbn  0 0 0 0 0 0 10 10
     100 14 1 5 618 18 360
LingShame  0 70  22 1 0 1 133 6 270
     50 100  5 1 0 6 146 19 840  
     0 0  8 0 0 0 109
     5 20   35 195中文不好好显示,我用的是Apache2.2 Php 5.3.6
在线等解决。

解决方案 »

  1.   

    你要看下你的CSV的文件是什么编码?
      

  2.   

    本帖最后由 xuzuning 于 2011-06-28 10:01:56 编辑
      

  3.   

    <?php
    error_reporting(E_ALL & ~(E_STRICT | E_NOTICE));
    $link_id = mysql_connect("localhost","root","k1k2") or die("连接失败");
    mysql_query("set names 'gbk'");
    if($link_id)
    {
     mysql_select_db("ht_data");
    $member="select username,blognum,thisday,thisweek,num,posts,threads,digestposts,blogs,credits,oltime,thismonth from hpre_common_member as mumberTemp 
    left  JOIN hpre_common_member_count as countTemp ON mumberTemp.uid = countTemp.uid
    left JOIN hpre_common_member_profile as profileTemp  ON countTemp.uid = profileTemp.uid
    left JOIN hpre_common_onlinetime as onlinetimeTemp ON countTemp.uid = onlinetimeTemp.uid
    left JOIN (select author,authorid ,COUNT(author) as num
    from hpre_forum_thread
    where date_format(NOW(),'%Y-%m-%d')=FROM_UNIXTIME(dateline,'%Y-%m-%d')
    GROUP BY author) as childTemp
             on childTemp.authorid=countTemp.uid
       left join  (
    select username as log_username,uid ,COUNT(username) as blognum
    from hpre_home_blog
    where date_format(NOW(),'%Y-%m-%d')=FROM_UNIXTIME(dateline,'%Y-%m-%d')
    GROUP BY username
    )as logTemp
                        on logTemp.uid=mumberTemp.uid";
    $result=mysql_query($member);
    $query=mysql_fetch_array($result);
    $name=date("Y-m-d");
    $fp = fopen($name.'.csv', 'w'); while($row=mysql_fetch_array($result)){
    $thred[]=$row;
    } $con= array("用户名","今天日志","今天在线","本周在线","今日主题","总发帖","总主题","精华帖","总日志","总积分","总在线/小时","本月在线");
    }
    fputcsv($fp,$con);
    for($j=0;$j<count($thred);$j++){
    for($i=0;$i<count($thred[$j]);$i++){
    array_splice($thred[$j],$i,1);

    }
    }
    foreach($thred as $r){
    fputcsv($fp,$r);
    }
    fclose($fp);
    ?>
      

  4.   

    08O7p8P7LL3xzOzI1da+LL3xzOzU2s/fLLG+1tzU2s/fLL3xyNXW98ziLNfct6LM+yzX3Nb3zOIsvqu7qsz7LNfcyNXWvizX3Lv9t9Ys19zU2s/wyNiwwLDAsMTAzLDUsMjAKYWh6aGVuLCwwLDUsLDE4LDIsMCwxLDEyNSwxOSwyODUKt+e+2ywsMTUsNDwsMTgsMSwwLDAsMTM2LDExLDQ3MArSwvHH9Ob05iwsMCwxNSwsMTI2LDE4LDAsNyw0NzQsMzEsOTI1CnN4bSwsMCwwLCwyMCwxLDAsMCw3MSw1LDQwCsG5v+ 这个是结果- -  
      

  5.   

    function Print_Test($handle_Pram)
    {
    $ROW = 1;
    while($date = fgetcsv($handle_Pram,15000,","))
    {
    $num = count($date);
    $ROW ++;
    for($c =0;$c<$num;$c++)
    {
    echo $date[$c];
    }echo "<br>";
    }
    }

        $handle = fopen("2011-06-24.csv","r");

    Print_Test($handle);
    fclose($$handle);
    就是用fgetcsv读的
      

  6.   

      貌似就是导出CSV的编码格式问题, 请问怎么设置呢?..
      

  7.   

    08O7p8P7LL3xzOzI1da+LL3xzOzU2s/fLLG+1tzU2s/fLL3xyNXW98ziLNfct6LM+yzX3Nb3zOIsvqu7qsz7LNfcyNXWvizX3Lv9t9Ys19zU2s/fL9ChyrEssb7UwtTaz98KenFsLCwxMTUsMjE1LCwzNDMsMTIyLDEsMjIsMTI0MSw4MywyNDI1CnRlc3QxLCwwLDAsLDEsMSwwLDAsMTEsMCwwCnRlc3QyLCwsLCwwLDAsMCwwLDAsMCwKdGVzdDMsLCwsLDAsMCwwLDAsMCwwLAp0ZXN0NCwsLCwsMCwwLDAsMCwwLDAsCnRlc3Q1LCwsLCwwLDAsMCwwLDAsMCwKbHh3eCwsMCwwLCw0LDMsMCwwLDI0LDIsMApnd3gsLDAsMCwsMCwwLDAsMCw0LDAsMAp6bHksLDAsMCwsMCwwLDAsMCw0LDAsMApoeWYzNTk3MDk1NTUsLDY1LDExMCwsMjgsMSwwLDAsMTA4LDksMzYwCnNvcGhpZSwsMCwwLCwwLDAsMCwwLDIsMCwwCmNibiwsLCwsMCwwLDAsMCwwLDAsCsLesryyvCwsMTAsMTAsLDEwMCwxNCwxLDUsNjE4LDE4LDM2MApMaW5nU2hhbWUsLDAsNzAsLDIyLDEsMCwxLDEzMyw2LDI3MAqjzaPPo8+jxCwsNTAsMTAwLCw1LDEsMCw2LDE0NiwxOSw4NDAKwfnL6r7Nuty/4SwsMCwwLCw4LDAsMCwwLDEwOSw1LDIwCsDuzrAsLDM1LDE5NSwsOTIsMzEsNSwxLDQyMSwxNyw4NzUKamFzb24sLDAsNSwsNiwwLDAsMCw5Myw3LDI4NQpsaXV5b25nLCwxNSw2MCwsMjIsNywwLDMsMTc1LDIzLDgyMApsaXV5b3V5aTIwMTEsLDAsMCwsMCwwLDAsMiw5Myw0LDUwCmpvaG4sLDExMCwxMjAsLDQ1LDE4LDAsMTAsMjcyLDIzLDEyNTAKd2luZ3dhbmcsLDM1LDM1LCwzMyw3LDAsMCwzMjYsMTMsNDY1Ctbtzbdzb7fKLCwxNSw1MCwsMTQsNSwwLDAsNzUsNSw2MArAtra5LCw4NSwxMTAsLDU2LDQwLDEsMzEsNDQ4LDM5LDE0MzAKeGZ4cGV0ZXIsLDE1LDI1LCwyLDAsMCwwLDQ5LDgsMjk1CkdhcnJ5LCwxMCwyNSwsMTIsMywwLDAsMTc0LDIxLDY5NQp4dWxpZSwsMzAsNjAsLDU3LDIwLDIsMTUsMjY5LDE4LDc5MAp6WlpaWiwsMCwwLCwxLDAsMCwwLDE5LDEsMApKdXN0aW4sLDAsMCwsMCwwLDAsMCwxMiwxLDIwCmx1a2UsLDEwLDE1LCw4LDAsMCwyLDk1LDUsMjQ1CsfnwMq1xMzsLCw1LDUsLDEsMCwwLDAsMzEsNSwyNTUKdGVuZ2RheW9uZywsNTAsOTAsLDYsMSwwLDcsOTUsMTAsNDIwCtDtx+DLySwsMTUsMTUsLDM5LDQsMCwxLDE2Miw5LDQxNQp5aW5namllMDAwLCwwLDUsLDcsMSwwLDEsNTcsNCwxNzUKemhhb3lhbmppdSwsMTUsNTUsLDcsMiwyLDMsMjkyLDE2LDY3NQpsaW5nZW4sLDAsNSwsMCwwLDAsMCwxMCwxLDE1CmR4Y2phdmEsLDU1LDExNSwsMzIsMywyLDUsNDU4LDIyLDEwNjUKeXVnbCwsMCwwLCwyLDAsMCwwLDIzLDMsMTIwCndhbmJpbmcsLDAsNSwsMjEsMSwwLDQsMTEyLDUsMjQ1Cm1hc29uZywsMCw1LCwzLDAsMCwwLDI0OCwxMCw0MjUKt6zH0b20LCwzNSw2MCwsNDEsMTIsMCwwLDI5MSwxMSwzNTAKtt/AssTHuPZRw84sLDE1LDIwLCwzNiwxMCwwLDE0LDI4NSwyMyw3NDAKxsO67ywsMCw0NSwsNTUsMjIsMCw1LDI1NSwxNSw1MzUKbGlqaWUsLDUwLDg1LCw1NCwzLDAsMjcsOTU1LDMzLDExNDUKeGlueGlueGl5dWFuLCwwLDEwLCwyNywyNiwwLDAsMTAzLDUsMjAKYWh6aGVuLCwwLDUsLDE4LDIsMCwxLDEyNSwxOSwyODUKt+e+2ywsMTUsNDAsLDEzLDEsMCwyLDgzLDEwLDUxMAptYXlvbmcsLDAsMCwsOCwzLDAsMCwxNjEsMywxMzAKamlheGlhb3RvbmcsLDAsMCwsMTgsMSwwLDAsMTM2LDExLDQ3MArSwvHH9Ob05iwsMCwxNSwsMTI2LDE4LDAsNyw0NzQsMzEsOTI1CnN4bSwsMCwwLCwyMCwxLDAsMCw3MSw1LDQwCsG5v+wsLDIwLDI1LCwxMjMsMywwLDAsMjgwLDI5LDE3MDUKd29vZCwsNSw1LCw0MCwxNCwwLDgsMjM2LDEyLDI2NQpzaW1vbiwsNSwxMCwsMCwwLDAsMCwzOCw1LDIwMAprYXNvbiwsMCwwLCw0LDAsMCwwLDQ2LDYsMjMwCmZyZWVsYiwsMCwwLCwyLDAsMCwwLDMyLDIsNTAKvrLX0ywsMCwwLCwxLDAsMCwwLDEyLDIsMTAwCm1hZ2FyZXQsLDUsMzAsLDI3LDQsMCwwLDE1NywxMywzMDAKY2hlbnZpbmNlbnQsLDAsNSwsMCwwLDAsMCw4LDMsMTY1CmNhb2NodWFucGluZywsNSwxMCwsMSwxLDAsMCwxNywxLDQwClRvbnlQYW4sLDAsNSwsMCwwLDAsMCwyNiwxLDE1Cp9v10MsLDUsMTAsLDEsMCwwLDAsNTUsNSwxOTAKaWZmaWZmZiwsNSwyNSwsMiwwLDAsMCw0MiwzLDk1CmplcnJ5Lnh1LCwxNSw0MCwsMTIsNCwyLDAsMTEyLDExLDU4MArRvs23xcvFyywsMCw2MCwsOSwxLDAsMSw2NSw3LDI3MAp4aWFuZ3ppLCwwLDAsLDAsMCwwLDAsMiwwLDEwCkNocmlzLCwwLDUsLDMsMCwwLDAsNDcsMyw2NQppb3Z2bywsMCwwLCwwLDAsMCwwLDIsMCwxMApsaXV5aWZlbmcsLDEwLDI1LCwxNiw4LDAsMSwxMzQsNSwzMjUKbWVpdGFvLCwxNSwxNSwsMTUsOCwwLDAsOTAsMTIsNTE1CmphdmFfZmxleCwsMCw0MCwsMjMsMywwLDAsNzAsNiwzNTAKZGVuZ3Rpbmd0aW5nLCwzMCw0NSwsMTAsMSwwLDQsNjYsNCwxODUKeWFuZ3dlbmxlaSwsMzAsODAsLDksMywwLDAsNTE4LDksNTUwCkNoYXJsaWUsLDAsMCwsMywwLDAsMCwxMiwyLDgwCnpob3VoYW8sLDU1LDEwNSwsMTksMywwLDEsMjg5LDE5LDk2NQptYXl1ZSwsMTUsMjAsLDAsMCwwLDMsNTMsNCwxNDAKamFtZXNsb25nLCwwLDAsLDEsMCwwLDAsOCwwLDAKUmljaGFyZEdvbmcsLDQ1LDgwLCwxOSw2LDAsNCwxNjMsMTAsNDMwCti8UHAsLDIwLDU1LCw4MywxNiwwLDEsNDc0LDE4LDY5NQpjam95NDg1NiwsNjUsNjUsLDcsNSwwLDQsNzAsNywzODUKbGltaW5neXUsLDAsMTUsLDAsMCwwLDAsMTAsMSw5NQpNci5MaXUsLDM1LDYwLCw3LDEsMCw0LDEzNiwxMCw1NjAKa2s4ODgsLDU1LDk1LCwxMTIsMTksMCw0LDQzMCwyNyw5ODUKx+/YvNPqLCwxMDUsMTIwLCwxMzksMTksMSwxNSw5NDEsMzUsMTM5MAp0YW90YW8sLDAsMCwsMCwwLDAsMCw4LDAsMApjaGVud2VpLCwwLDAsLDQsMSwwLDAsMjMsMiw4MAp4aWFvdGlhbiwsODAsMTMwLCw0OSwxMywxLDgsNDk0LDExLDU3MApLb3JleW9zaGksLDgwLDE1NSwsNDQsNCwwLDIsMjY2LDE3LDY3NQp5aW55YW5taW5nLCwwLDAsLDAsMCwwLDAsMTgsMiw2MAp0YW56aGliaW4sLDAsMCwsMSwwLDAsMCw2LDEsNTAKc2lzaHVpbGl1bmlhbiwsMCwwLCwwLDAsMCwwLDY1LDQsMTMwCtTzoeSm2CwsNTUsODUsLDcsMiwwLDAsNjAsOSwzODUKsry2oSwsMCw1LCw4LDAsMCwwLDU3LDcsMjI1CnFpbmZlaSwsNDAsNDAsLDcsNSwwLDAsMzEsMSw3MArSu7XDuuwsLDAsMCwsMTQsOSwwLDAsNjYsNywzMTAKc3VkZXpob25nLCwyMjAsMzkwLCwzNiw0LDAsOCw0NTUsMjksMTgxMArO2tG7LCwwLDAsLDAsMCwwLDAsNCwwLDAKeWlkYSwsMjAsMzAsLDEsMCwwLDAsNDcsNCwyNTAKZ291eXVwZW5nLCwwLDAsLDAsMCwwLDAsNCwxLDEwCmdvb2dsZSwsMCwwLCwxOSwzLDAsMyw5OSwzLDYwCs/p19MsLCwsLDAsMCwwLDAsMCwwLApiaW5nbGUsLCwsLDAsMCwwLDAsMiwwLApiYWJ5d3B4LCwzNSwxMDAsLDksNCwwLDAsNDgsOCw0MjAKx6698L3wLCwwLDAsLDAsMCwwLDAsOCwxLDEwCsXWu6K088/ALCwwLDAsLDAsMCwwLDAsMiwwLDAKemhhbmdsaWFuZ3lhbiwsMCwwLCwwLDAsMCwwLDE2LDIsODAKwuXFtdLALCwwLDAsLDAsMCwwLDAsMiwwLDAKd3VfamllLCwxNSwxNSwsMCwwLDAsMCwxOCwyLDEwNQpiYW9iYW9maXNoLCwxNSwxNSwsMywwLDAsMCwxMywxLDE1CnoxOTYzMDMxMiwsNTAsNjUsLDEwLDAsMCwwLDc2LDYsMzY1Cmx2Y2h1bmZhbmcsLDAsMCwsMCwwLDAsMCwyLDAsMApsaXVzcywsMTUsNDAsLDE2LDAsMCwyLDEzMyw1LDI0MApsaWhhaXBlbmcsLDk1LDE1NSwsMTEsMSwwLDAsMTA5LDE0LDgzNQpzaGlndW9odWksLDM1LDM1LCwxLDAsMCwwLDcsMSw0NQplYWxpbmdzLCw1LDIwLCw0LDAsMCwwLDQxLDQsMjQwCnlhbmd0YW81MjE5LCw1LDIwLCw0LDAsMCw0LDU3LDMsMTgwCmZlbmd3ZWlsaSwsMCwwLCwwLDAsMCwwLDIsMCwyMApsdmtlLCwwLDAsLDAsMCwwLDAsMiwwLDMwCmxpdWp1bmhhbywsNSwyMCwsMiwwLDAsMCwxNiwxLDgwCm1lbmdkaSwsOTAsMTUwLCwzLDEsMCwwLDM1LDksNzAwCjYwOTA5ODYwNSwsMCwxNSwsMywwLDAsMCw0MSw3LDQyNQpzaW1wbGVsaWtlLCwwLDE1LCwxLDAsMCwxLDE3LDIsMTA1CmJ1Y2tlciwsMCwwLCwwLDAsMCwwLDIsMCwyMAp4aWFvd2VpMjM3LCwwLDAsLDAsMCwwLDAsNCwwLDIwCmp1c3Rmb25nLCw1MCw2NSwsNCwyLDAsNSwzNCw2LDM2NQp2YWtpbiwsMCwyMCwsMSwwLDAsMCw0LDAsMjAKuqPM7CwsMCwxMCwsMCwwLDAsMCwzLDAsMTAKemp4LCwxNSwxNSwsMCwwLDAsMCwyLDAsMTUKemp4anViYWksLDM1LDM1LCwwLDAsMCwwLDE0LDAsMzUK这是全部的。刚才没粘完。
      

  8.   

    我是用base64_decode()验证结果是完整的。
      

  9.   

    本来考虑可能是在编码上有问题,所以才让你 base64根据你给的数据,是 gbk 编码的,用 fgetcsv 读取不存在任何问题
      

  10.   

    // utf-8
    setlocale(LC_ALL, 'en_US.UTF-8');
    // 简体
    setlocale(LC_ALL, 'zh_CN');
      

  11.   

    解决了  是用setlocale(LC_ALL,'null')还原一下系统的编码格式...  
    据说CSV不支持UTF-8
    (听说)