From 403a19940961eaf3edae84c7e9c4fa0bd074e940 Mon Sep 17 00:00:00 2001 From: nodiscc Date: Thu, 5 Mar 2015 13:33:30 +0100 Subject: [PATCH] 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) --- index.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/index.php b/index.php index cc3d736..0b507b4 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;