0

HTML ファイル内のすべてのリンクに、Google アナリティクス トラッキング コードを追加したいと考えています。HTML 全体が $content 変数に含まれています。mailto 以外のすべてのリンクにこのトラッキング コードを追加することはできますか?

4

1 に答える 1

1

いいえ、できません-少なくとも確実ではありません。HTML は非常に文脈に依存しているため、これを実行するには実際のパーサーが必要です。正規表現は多くのケースをカバーするかもしれませんが、偽陽性 (実際にはリンクではないものに一致する正規表現) と偽陰性 (実際のリンクを見逃す) の両方が発生することになります。より完全な...ええと...「説明」については、私のポニーコメントのリンクを参照してください。

最終的な HTML を調べて後処理する必要がある場合は、適切な HTML パーサーを見つけて (ピンチの場合DOMDocument: IIRC、XML と HTML の両方を解析できる)、DOM ツリーをたどるのが最善の策です。必要に応じてリンクを置き換えてから、ツリーをレンダリングして文字列に戻します。

ただし、理想的には、HTML 対応のテンプレート システム (XSLT など) が配置されている場合、おそらくプロセスの早い段階で DOM ツリーをインターセプトできます。つまり、追加の解析とレンダリングの手順をスキップして、DOM に直接進むことができます。木。

于 2012-09-17T14:19:26.813 に答える