From: nodiscc Date: Thu, 5 Mar 2015 12:33:30 +0000 (+0100) Subject: Improve annoying URL parameters cleaning: X-Git-Tag: v0.0.44beta~15^2~1 X-Git-Url: https://git.immae.eu/?a=commitdiff_plain;h=403a19940961eaf3edae84c7e9c4fa0bd074e940;p=github%2Fshaarli%2FShaarli.git Improve annoying URL parameters cleaning: * Use regular expressions to avoid suplicating params depending on their position in the URL (¶m=,?param=) * Only remove the relevant URL pattern and don't remove following params, fixes https://github.com/shaarli/Shaarli/issues/136 * Credits to Marcus Rohrmoser (https://github.com/mro) --- diff --git a/index.php b/index.php index cc3d7360..0b507b45 100644 --- a/index.php +++ b/index.php @@ -1642,11 +1642,12 @@ function renderPage() { $url=$_GET['post']; + // We remove the annoying parameters added by FeedBurner, GoogleFeedProxy, Facebook... - $annoyingpatterns = array('&utm_source=', '?utm_source=', '#xtor=RSS-', '?fb_', '?__scoop', '#tk.rss_all?', '?utm_campaign=', '?utm_medium='); + $annoyingpatterns = array('/[\?&]utm_source=[^&]*/', '/[\?&]utm_campaign=[^&]*/', '/[\?&]utm_medium=[^&]*/', '/#xtor=RSS-[^&]*/', '/[\?&]fb_[^&]*/', '/[\?&]__scoop[^&]*/', '/#tk\.rss_all\?/'); foreach($annoyingpatterns as $pattern) { - $i=strpos($url,$pattern); if ($i!==false) $url=substr($url,0,$i); + $url = preg_replace($pattern, "", $url); } $link_is_new = false;