XSCsvDataSource
包 | XS.util |
---|---|
继承关系 | class XSCsvDataSource » XSDataSource |
版本 | 1.0.0 |
源代码 | sdk/php/util/XSDataSource.class.php |
CSV 数据源
可在文件开头指定字段(必须是有效字段), 否则将默认按照 XS 项目字段顺序填充
Public 方法
名称 | 描述 | 定义于 |
---|---|---|
__construct() | 构造函数 | XSDataSource |
getCharset() | 取得数据源的准确字符集 | XSDataSource |
getData() | 从数据源中提取一条数据 | XSDataSource |
instance() | 取得数据源对象实例 | XSDataSource |
Protected 方法
名称 | 描述 | 定义于 |
---|---|---|
deinit() | XSCsvDataSource | |
getDataList() | XSCsvDataSource | |
init() | XSCsvDataSource |
方法明细
deinit()
方法
protected void deinit()
|
源码: sdk/php/util/XSDataSource.class.php#L381 (显示)
protected function deinit()
{
if ($this->fd)
{
fclose($this->fd);
$this->fd = null;
}
}
getDataList()
方法
protected void getDataList()
|
源码: sdk/php/util/XSDataSource.class.php#L390 (显示)
protected function getDataList()
{
if (($item = fgetcsv($this->fd, 0, $this->delim)) === false)
{
echo "INFO: reach end of file or error occured, total lines: " . $this->line . "\n";
return false;
}
$this->line++;
if (count($item) === 1 && is_null($item[0]))
{
echo "WARNING: invalid csv line #" . $this->line . "\n";
return $this->getDataList();
}
return array($item);
}
init()
方法
protected void init()
|
源码: sdk/php/util/XSDataSource.class.php#L366 (显示)
protected function init()
{
$file = $this->arg;
if (empty($file))
{
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'];
}