/** * Removes given parameter from the url * * @param $url * @param $param * @return string */ public function removeQueryParamFromUrl($url, $param) { $modified_url = $url; $url_parts = NostoHttpRequest::parseUrl($url); if ($url_parts !== false && isset($url_parts['query'])) { $query_array = NostoHttpRequest::parseQueryString($url_parts['query']); if (isset($query_array[$param])) { unset($query_array[$param]); if (empty($query_array)) { unset($url_parts['query']); } else { $url_parts['query'] = http_build_query($query_array); } $modified_url = NostoHttpRequest::buildUrl($url_parts); } } return $modified_url; }
/** * Tests the "parseQueryString" helper method. */ public function testHttpRequestParseQueryString() { $query_string_parts = NostoHttpRequest::parseQueryString('param1=first¶m2=second'); $this->assertArrayHasKey('param1', $query_string_parts); $this->assertContains('first', $query_string_parts); $this->assertArrayHasKey('param2', $query_string_parts); $this->assertContains('second', $query_string_parts); }