Merge pull request #725 from AndreasK79/adif_import_speedup
[ADIF import] Import speedup with minor modifications in Adif_parser.
这个提交包含在:
当前提交
62b8d024b6
共有 1 个文件被更改,包括 9 次插入 和 14 次删除
|
|
@ -19,8 +19,9 @@ class ADIF_Parser
|
|||
{
|
||||
|
||||
var $data; //the adif data
|
||||
var $datasplit; // one line is one QSO in the array
|
||||
var $currentarray = 0; // current place in the array
|
||||
var $i; //the iterator
|
||||
var $current_line; //stores information about the current qso
|
||||
var $headers = array();
|
||||
|
||||
public function initialize() //this function locates the <EOH>
|
||||
|
|
@ -108,6 +109,8 @@ class ADIF_Parser
|
|||
echo "Error: ADIF File Does Not Contain Any QSOs";
|
||||
return 0;
|
||||
};
|
||||
|
||||
$this->datasplit = preg_split("/<eor>/i", substr($this->data, $this->i));
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
|
@ -177,22 +180,14 @@ class ADIF_Parser
|
|||
return $return;
|
||||
}
|
||||
|
||||
|
||||
//finds the next record in the file
|
||||
public function get_record()
|
||||
{
|
||||
if($this->i >= strlen($this->data))
|
||||
if($this->currentarray >= count($this->datasplit))
|
||||
{
|
||||
return array(); //return nothing
|
||||
};
|
||||
$end = stripos($this->data, "<eor>", $this->i);
|
||||
if($end == false) //is this the end?
|
||||
{
|
||||
return array(); //return nothing
|
||||
};
|
||||
$record = substr($this->data, $this->i, $end-$this->i);
|
||||
$this->i = $end+5;
|
||||
return $this->record_to_array($record); //process and return output
|
||||
return $this->record_to_array($this->datasplit[$this->currentarray++]); //process and return output
|
||||
}
|
||||
|
||||
public function get_header($key)
|
||||
|
|
|
|||
正在加载…
在新工单中引用