<?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,法力,特殊技能会消耗