![]() |
1
7
这是我的一个宠物尿: 从未 手工分析HTML。 从未 用regexps分析HTML。 从未 使用字符串比较分析HTML。 总是 使用HTML解析器来解析HTML,这就是它们的目的。 我已经很久没有做过任何PHP了,但是一个快速搜索出现了 this PHP5 HTML parser . |
![]() |
2
2
不要编写解析器,使用其他人的: DOMDocument::loadHTML -那只是一个,我想还有很多其他的。 |
![]() |
3
1
嗯,这并不能回答问题,更像是一种观点,但是… 我认为最好的抓取策略(并因此消除此问题)不是逐行分析HTML,这对HTML来说是不自然的,而是通过其自然分隔符来分析它:<gt;对。 有两种类型的课程:
在段落(p)标记的情况下,您可以立即看到使用此策略的优势:解析多行段落将更容易,而不必跟踪结束标记的位置。 |
![]() |
4
1
也许在将来的项目中,我会使用解析库,但这与手头的问题无关。这是我目前的解决方案。
这就是实现:
这可能在某种程度上得到优化,但就我的目的而言,这已经足够了。 |
![]() |
5
0
为什么不在一行中读取,并将其设置为一个字符串,然后检查该字符串是否有标记的开头和结尾,如果标记跨越多行,则将下一行添加到字符串中,并将开头大括号之前的部分移动到处理过的字符串中。然后通过整个文件进行解析。它不漂亮,但应该管用。 |
![]() |
6
0
如果您必须坚持当前的解析方法,并且它是一个regex,则可以使用 multi-line flag “m”跨多条线。 |
![]() |
Karlo · PHP Sqlite PDO最新版本 4 月前 |
![]() |
Malte · 检查远程服务器上是否存在文件(使用PHP)[关闭] 4 月前 |
![]() |
Bard.Mus · 迁移后的数据库字符集环境 4 月前 |