【发布时间】:2013-07-10 05:47:56
【问题描述】:
我需要从在线时间表(对于一所学校)中提取课程到一个数组中。所以我可以将数据插入我的数据库。在线时间表(url:roosters-hd.stenden.com)是这样的:
左边是时代,顶部是学生时代(Mo, Tu, We, Th, Fr)。非常基础。
除此之外,我还需要获取 [startDate] 和 [endDate]。时间取决于课程单元格在哪一行,以及它有多少行跨度。可以通过将列号添加到开始日期(打印在顶部)来计算日期。 所以最终数组看起来像这样:
[0] => Array
(
[0] => Array
(
[Name] => Financiering
[Type] => WC
[Code] => DECBE3
[Classroom] => E2.053 - leslokaal
[Teacher] => Verboeket, Erik (E)
[Class] => BE1F, BE1B, BE1A
[StartDate] => 04/06/2013 08:30:00
[EndDate] => 04/06/2013 10:00:00
)
etc.
由于我缺乏获取数据的经验,我最终会得到一个效率极低且不灵活的解决方案。就像我应该使用 XML 解析器一样吗?还是正则表达式?关于如何解决这个问题的任何想法?
【问题讨论】:
-
请不要正则表达式! stackoverflow.com/a/1732454/2170192
-
是的,不是正则表达式,正则表达式用于解析字符串,它非常强大,但仍然不应该用于这种解析。此外,您发布的链接返回 400 错误请求。最好看到现场示例,您可以将其放在 jsfiddle.net 中
-
固定链接。我现在没有任何例子,因为我不确定我应该从哪里开始。我的意思是,获取数据的正确有效方式。
标签: php regex xml-parsing html-parsing