我想用 Google Analytics 跟踪代码对 HTML 文件中的每个链接进行后缀。整个 HTML 包含在 $content 变量中。是否可以将此跟踪代码添加到除 mailto 之外的所有链接?
问问题
121 次
1 回答
1
不,你不能这样做——至少不可靠。HTML 是非常上下文相关的,这意味着您需要一个真正的解析器来实现这一点。正则表达式可能涵盖许多情况,但最终会出现误报(您的正则表达式匹配不是真正链接的内容)和误报(错过了真正的链接)。请参阅我的 Pony 评论中的链接以获得更彻底的……嗯……“解释”。
如果你真的必须通过最终的 HTML 并对其进行后处理,最好的办法是找到一个合适的 HTML 解析器(在紧要关头,DOMDocument
可能会这样做:IIRC,它可以解析 XML 和 HTML),遍历 DOM 树并根据需要替换链接,然后将树渲染回字符串。
理想情况下,您有一个 HTML 感知模板系统(例如 XSLT),在这种情况下,您可能会在流程的早期拦截 DOM 树,这意味着您可以跳过额外的解析和渲染步骤,直接进入 DOM树。
于 2012-09-17T14:19:26.813 回答