我的问题与这个帖子有关:How to use a text file as database in Yii2
我已经设法从 struct 化的ANSI编码文本文件(没有CSV,但指定了列的位置和长度)中读取数据,并在网格视图中显示它们.我已经将列pos和len定义保存到MySQL表中,这样我就可以访问该表.现在,我正在读取这些列定义,并且可以成功地正确读取每一列:
foreach ($lines as $line) {
if (substr($line, 0, 1) === $type) {
$model = new DynamicModel($dynamicAttributes);
foreach ($fielddefs as $fielddef) {
$attributeName = $fielddef->attributes['variable'];
$value = substr($line, $fielddef->pos, $fielddef->len);
$model->$attributeName = $value;
}
$models[] = $model;
}
}
return $models;
例如,在某一列中出现诸如ü、ö等的特殊字符之前,在这种情况下,下一列中的值被移位,因此这似乎改变了读取下一列的方式,位置或长度不再被正确定义.我试图将整个文件转换为带有mb_convert_encoding()的UTF8,但不幸的是没有帮助.一旦我删除任何像这样的特殊字符,整个记录,所有的列都会被完美地读取.你以前有过这样的经历吗?我怎么才能解决这个问题呢?谢谢.
文本文件如下所示:
结果在网格视图中如下所示: