【发布时间】:2016-11-11 23:03:33
【问题描述】:
假设我想实现基于页面元素和内容结构的自动字体请求优化,我将如何使用 PHPs DomDocument 获取所需的信息?
简而言之,这个问题可以用两个结构示例来说明:
示例 1
<p><em>All italic paragraph text</em></p>
示例 2
<p>Normal paragraph text <em>and some italic text</em></p>
两个示例中的元素结构相同,即带有<em> 子元素的段落元素。但是,内容结构不同:示例 1 中的所有文本都是斜体,但示例 2 中既有普通文本也有斜体文本。
我目前获取元素结构的方法是这样的:
$dom = new DOMDocument;
foreach ($dom->getElementsByTagName('p') as $elm) {
$elms[] = $dom->saveHTML($elm);
}
然后我将遍历元素并使用相同的方法来查找嵌套元素,例如 <em> 和 <strong>。
但我需要一个好的方法来处理内容结构。我想我可以用<em> 和</em> 拆分文本,看看结果列表中的第一个和最后一个元素是否有长度,但这让我想起了使用正则表达式的自定义 HTML 搜索,这似乎是最不推荐的方法这里。
但是在这种情况下我有什么替代方案?
【问题讨论】:
标签: php html parsing structure domdocument