/** * This method prunes the URL by applying all options that have been set previously. * * If the user didn't set any options we can simply return the URL. Otherwise we iterate over each option the user * "activated" and call the respective class with the function. * After all options have been applied we can return the URL * * @param $url * @return string */ public function prune($url) { if ($this->options === null) { return $url; } foreach ($this->options as $option => $value) { switch ($option) { case 'anythingAfter': $url = StringPruner::anythingAfter($url, $value); break; case 'regex': $url = RegexPruner::replace($url, $value); break; case 'params_all': $url = ParamPruner::all($url); break; case 'params': $url = ParamPruner::keys($url, $value); break; case 'params_values': $url = ParamPruner::values($url, $value); break; } } // Reset $this->options = null; return $url; }
public function testRepeatedParametersRemovingByKey() { $url = 'http://hostname/?a=1&a=2&a=3&b=4&b=5&b=6&c=7&c=8'; $this->assertEquals('http://hostname/?a=1&a=2&a=3&b=4&b=5&b=6', \tzfrs\URLPruner\Pruners\ParamPruner::keys($url, ['c'])); }
public function testKeys() { $url = 'https://www.google.de/search?num=30&site=&source=hp&q=software+development&oq=Software+Development&gs_l=hp.3.0.0l10.464.4794.0.5387.31.18.3.7.8.0.185.1953.1j14.15.0....0...1c.1.64.hp..8.23.1779.0._BnKQF4413M'; $this->assertEquals('https://www.google.de/search?site=&source=hp&oq=Software+Development&gs_l=hp.3.0.0l10.464.4794.0.5387.31.18.3.7.8.0.185.1953.1j14.15.0....0...1c.1.64.hp..8.23.1779.0._BnKQF4413M', \tzfrs\URLPruner\Pruners\ParamPruner::keys($url, ['num', 'q'])); }