php之读取csv文件!!!

<?php 

Class Csv{
    private static $m_instance;
    public $csv;

    public static function inst(){
        if(!(self::$m_instance instanceof self)){
        self::$m_instance = new self;
        }
        return self::$m_instance;
    }
    public function __construct() {
        $csv = array();
        $this->csv = $csv;
        $this->loadAllCsv();
    }

    public function loadAllCsv(){

        $arr = array(
            'map' => "map.csv", 
            'map_dir' => "map_dir.csv", 
            'event' => "event.csv", 
            'injureDesc' => "injureDesc.csv", 
            'key' => "key.csv", 
            'npc' => "npc.csv", 
            'skill' => "skill.csv", 
            'skillBook' => "skillBook.csv", 
            'weapon' => "weapon.csv",
            'world' => "world.csv",
            'action' => 'action.csv',
            'shop' => 'shop.csv',
        );

        foreach ($arr as $key => $value){ 
            $this->readCsv($key, $_SERVER['DOCUMENT_ROOT'] . '/xiyou/csv/' .  $value);
        }
    }

    public function readCsv($key, $filename){
        $file = fopen($filename,'r'); 
        $map_head = array();
        $index = 0;

        $this->csv[$key] = array();
        while ($data = fgetcsv($file)) { //每次读取CSV里面的一行内容

            if ($index == 0) {
                $map_head = $data;
                $index++;
                continue;
            }

            if($index == 1){
                $index++;
                continue; //csv第二行用于说明
            }


            $map_temp = array();

            for ($i = 0; $i < count($map_head); $i++) { 
                $map_temp[$map_head[$i]] = $data[$i];
            }
            $this->csv[$key][$data[0]] = $map_temp;
        }
         fclose($file);
    }

}

?>


map.csv文件格式如下:(其中第二行不会被读取,作为注释或者说明)

code,name,desc
属性key,属性value1,附加属性值value2
xueqi,血气,决定生死
jignqi,精气,施放技能消耗
neili,内力,特殊技能会消耗
fali,法力,特殊技能会消耗


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值