削除したいトラッキング文字列を含む文字列があります。正規表現が最善の解決策のように見えましたが、機能する正規表現を見つけることができません。
URLの例:
- http://example.com?tracking=foo
- http://example.com/bar.html?tracking=foo
- http://example.com?tracking=foo¶m=baz
- http://example.com/bar.php?param=baz&tracking=foo
tracking=foo
トラッキングのないURLには触れないでfoo
ください。&
私が作業したベストショットは、 -part/(http:\/\/[^?]*?.*)tracking=[^&]*&?(.*?["|\'])/i
との一致が多すぎるため、追跡文字列の後にURLに2番目のパラメーターがない場合、リンクの背後にあるすべてのものが削除されます。[^&]*
そして、私は現在$html
、出力されるページのhtml全体が含まれているので、このように使用しています。次のURL内のすべてのURLからトラッキングを削除したいと思います。
$html = preg_replace($pattern, '$1$2', $html);
したがって、$htmlに含まれる最小値は次のようになります。
<body>
<a href="[one of the examples above]">Some Link</a>
</body>