Improve annoying URL parameters cleaning:

* Use regular expressions to avoid suplicating params depending on their position in the URL (&param=,?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)
This commit is contained in:
nodiscc 2015-03-05 13:33:30 +01:00
parent ad2a397c66
commit 403a199409

View file

@ -1642,11 +1642,12 @@ function renderPage()
{ {
$url=$_GET['post']; $url=$_GET['post'];
// We remove the annoying parameters added by FeedBurner, GoogleFeedProxy, Facebook... // 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) 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; $link_is_new = false;