query)); $results = array(); $domain = 'com'; $results_language = $this->opts->language; $number_of_results = $this->opts->number_of_results; $url = "https://html.duckduckgo.$domain/html/?q=$query_encoded&kd=-1&s=" . 3 * $this->page; if (3 > strlen($results_language) && 0 < strlen($results_language)) $url .= "&lr=lang_$results_language"; if (3 > strlen($number_of_results) && 0 < strlen($number_of_results)) $url .= "&num=$number_of_results"; if (isset($_COOKIE["safe_search"])) $url .= "&safe=medium"; return $url; } public function get_results() { $results = array(); $xpath = get_xpath(curl_multi_getcontent($this->ch)); foreach($xpath->query("/html/body/div[1]/div[". count($xpath->query('/html/body/div[1]/div')) ."]/div/div/div/div") as $result) { $url = $xpath->evaluate(".//h2[@class='result__title']//a/@href", $result)[0]; if ($url == null) continue; if (!empty($results)) // filter duplicate results { if (end($results)["url"] == $url->textContent) continue; } $url = $url->textContent; $url = check_for_privacy_frontend($url, $this->opts); $title = $xpath->evaluate(".//h2[@class='result__title']", $result)[0]; $description = $xpath->evaluate(".//a[@class='result__snippet']", $result)[0]; array_push($results, array ( "title" => htmlspecialchars($title->textContent), "url" => htmlspecialchars($url), "base_url" => htmlspecialchars(get_base_url($url)), "description" => $description == null ? "No description was provided for this site." : htmlspecialchars($description->textContent) ) ); } return $results; } } ?>