一、采用技术:thinkphp + QueryList
二、目标:
1、希望一个函数提取如几种表格数据转成数组
2、兼容各种错误、表头与表体在不同的页面不一一对应等问题
三、经测试完美采集以下各种类型表单数据:
四、以下是我的各种分析
考虑因素:============================================
1、横排、竖排取值
2、colspan、rowspan
3、一个表头对应多个值
4、多行表头
特征:===============================================
1、如果是横排取值,则横排对应的可匹配的标头单元格值越多,反之亦然。
2、横排取值一般相邻两格形成键值对、一般整个表格表示一件事情的属性。
3、竖排取值一般表示多件事情的属性。
4、横排取值有标头,竖排取值没有
5、横排表头,一般是上排单元格少,下排单元格多。
6、表头特征值:只有横排才有表头、如果有两排的特征值则为特殊表头(且两行相邻)
7、内容特征值:
8、横竖特征值:同一行的特征值多为横排、横排的特征值排挨在一起。
9、表格出错特征:表头上有标题、表头上有空格、表底部有注释、表右侧有多余的。
10、可能一个网站有多种表格。
11、有可能数据库一个字段有多种字符对应
12、有可能不同页面的表格表头与对应内容不在同一个位置
目标:===============================================
1、横、竖取值判断。
2、低耦合高内聚
3、将表单内容提取到数组
4、横取:表头、内容提取;竖取:键、值读取
5、横取通过特征值分析提取表头、通过内容特征值去杂
方法:===============================================
1、通过分析单元格中的内容来确定表头、表头的行数。
2、写伪函数
3、先按正常途径写完函数,再来分析特殊情况
4、通过数字计算来获取算法
5=>4,9=>3
第一次:5
第二次:9(本来位置)+4-1(0索引)
问题:===============================================
1、当第一行表格为空时&#