XSCsvDataSource

XS.util
继承关系 class XSCsvDataSource » XSDataSource
版本 1.0.0
源代码 sdk/php/util/XSDataSource.class.php
CSV 数据源 可在文件开头指定字段(必须是有效字段), 否则将默认按照 XS 项目字段顺序填充

Public 属性

隐去继承来的属性

名称类型描述定义于
invalidLines XSCsvDataSource

Protected 属性

隐去继承来的属性

名称类型描述定义于
arg XSDataSource
inCli XSDataSource
type XSDataSource

Public 方法

隐去继承来的方法

名称描述定义于
__construct() 构造函数 XSDataSource
getCharset() 取得数据源的准确字符集 XSDataSource
getData() 从数据源中提取一条数据 XSDataSource
instance() 取得数据源对象实例 XSDataSource

Protected 方法

隐去继承来的方法

名称描述定义于
deinit() XSCsvDataSource
getDataList() XSCsvDataSource
init() XSCsvDataSource

属性明细

invalidLines 属性
public $invalidLines;

方法明细

deinit() 方法
protected void deinit()
源码: sdk/php/util/XSDataSource.class.php#L384 (显示)
protected function deinit()
{
    if (
$this->fd) {
        
fclose($this->fd);
        
$this->fd null;
    }
}

getDataList() 方法
protected void getDataList()
源码: sdk/php/util/XSDataSource.class.php#L392 (显示)
protected function getDataList()
{
    if ((
$item fgetcsv($this->fd0$this->delim)) === false) {
        if (
$this->inCli) {
            echo 
"INFO: reach end of file or error occured, total lines: " $this->line "\n";
        }
        return 
false;
    }

    
$this->line++;
    if (
count($item) === && is_null($item[0])) {
        if (
$this->inCli) {
            echo 
"WARNING: invalid csv line #" $this->line "\n";
        }
        
$this->invalidLines++;
        return 
$this->getDataList();
    }
    return array(
$item);
}

init() 方法
protected void init()
源码: sdk/php/util/XSDataSource.class.php#L368 (显示)
protected function init()
{
    
$file $this->arg;
    if (empty(
$file) && $this->inCli) {
        echo 
"WARNING: input file not specified, read data from <STDIN>\n";
        
$file 'php://stdin';
    }
    if (!(
$this->fd fopen($file'r'))) {
        throw new 
XSException("Can not open input file: '$file'");
    }
    
$this->line 0;
    if (isset(
$_SERVER['XS_CSV_DELIMITER'])) {
        
$this->delim $_SERVER['XS_CSV_DELIMITER'];
    }
}

XSCsvDataSource - 类参考 - 迅搜(xunsearch) - 开源免费中文全文搜索引擎

文档说明

XSCsvDataSource

XS.util
继承关系 class XSCsvDataSource » XSDataSource
版本 1.0.0
源代码 sdk/php/util/XSDataSource.class.php
CSV 数据源 可在文件开头指定字段(必须是有效字段), 否则将默认按照 XS 项目字段顺序填充

Public 属性

隐去继承来的属性

名称类型描述定义于
invalidLines XSCsvDataSource

Protected 属性

隐去继承来的属性

名称类型描述定义于
arg XSDataSource
inCli XSDataSource
type XSDataSource

Public 方法

隐去继承来的方法

名称描述定义于
__construct() 构造函数 XSDataSource
getCharset() 取得数据源的准确字符集 XSDataSource
getData() 从数据源中提取一条数据 XSDataSource
instance() 取得数据源对象实例 XSDataSource

Protected 方法

隐去继承来的方法

名称描述定义于
deinit() XSCsvDataSource
getDataList() XSCsvDataSource
init() XSCsvDataSource

属性明细

invalidLines 属性
public $invalidLines;

方法明细

deinit() 方法
protected void deinit()
源码: sdk/php/util/XSDataSource.class.php#L384 (显示)
protected function deinit()
{
    if (
$this->fd) {
        
fclose($this->fd);
        
$this->fd null;
    }
}

getDataList() 方法
protected void getDataList()
源码: sdk/php/util/XSDataSource.class.php#L392 (显示)
protected function getDataList()
{
    if ((
$item fgetcsv($this->fd0$this->delim)) === false) {
        if (
$this->inCli) {
            echo 
"INFO: reach end of file or error occured, total lines: " $this->line "\n";
        }
        return 
false;
    }

    
$this->line++;
    if (
count($item) === && is_null($item[0])) {
        if (
$this->inCli) {
            echo 
"WARNING: invalid csv line #" $this->line "\n";
        }
        
$this->invalidLines++;
        return 
$this->getDataList();
    }
    return array(
$item);
}

init() 方法
protected void init()
源码: sdk/php/util/XSDataSource.class.php#L368 (显示)
protected function init()
{
    
$file $this->arg;
    if (empty(
$file) && $this->inCli) {
        echo 
"WARNING: input file not specified, read data from <STDIN>\n";
        
$file 'php://stdin';
    }
    if (!(
$this->fd fopen($file'r'))) {
        throw new 
XSException("Can not open input file: '$file'");
    }
    
$this->line 0;
    if (isset(
$_SERVER['XS_CSV_DELIMITER'])) {
        
$this->delim $_SERVER['XS_CSV_DELIMITER'];
    }
}

留下一条评论吧!

请到论坛 登录 后刷新本页面!