"; if (isset($_GET['q'])) { // if there's a search query, show the results for it $query = urlencode($_GET["q"]); $show_results = TRUE; $search_url = "https://html.duckduckgo.com/html?q=" . $query; // Configuration de la pagination $results_per_page = 5; // Nombre de résultats par page $current_page = isset($_GET['p']) ? intval($_GET['p']) : 1; if ($current_page < 1) $current_page = 1; $context = stream_context_create([ 'http' => [ 'header' => "Cache-Control: no-cache\r\n" . "Pragma: no-cache\r\n" . "User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 2_0 like Mac OS X) AppleWebKit/525.18.1 (KHTML, like Gecko) Version/3.1.1 Mobile/5A347 Safari/525.20\r\n" ] ]); if (!$results_html = file_get_contents($search_url, false, $context)) { $error_text .= "Failed to get results, sorry :(
"; } $simple_results = $results_html; $simple_results = str_replace('strong>', 'b>', $simple_results); //change to $simple_results = str_replace('em>', 'i>', $simple_results); //change to $simple_results = clean_str($simple_results); $result_blocks = explode('

', $simple_results); $total_results = count($result_blocks) - 1; // Calcul des paramètres de pagination $total_pages = ceil($total_results / $results_per_page); if ($total_pages == 0) $total_pages = 1; // Éviter la division par zéro $start_result = ($current_page - 1) * $results_per_page + 1; $end_result = min($start_result + $results_per_page - 1, $total_results); // Affichage des résultats pour la page actuelle seulement for ($x = $start_result; $x <= $end_result; $x++) { if ($x <= $total_results && strpos($result_blocks[$x], '') === false) { //only return non ads // result link, redirected through our proxy $result_link = explode('class="result__a" href="', $result_blocks[$x])[1]; $result_topline = explode('">', $result_link); $result_link = str_replace('//duckduckgo.com/l/?uddg=', '/read.php?a=', $result_topline[0]); // result title $result_title = str_replace("", "", explode("\n", $result_topline[1])); // result display url $result_display_url = explode('class="result__url"', $result_blocks[$x])[1]; $result_display_url = trim(explode("\n", $result_display_url)[1]); // result snippet $result_snippet = explode('class="result__snippet"', $result_blocks[$x])[1]; $result_snippet = explode('">', $result_snippet)[1]; $result_snippet = explode('', $result_snippet)[0]; $final_result_html .= "
" . $result_title[0] . "
" . $result_display_url . "

" . $result_snippet . "


"; } } // Ajout des liens de pagination $final_result_html .= "
"; if ($current_page > 1) { $final_result_html .= "< Previous "; } $final_result_html .= "Page " . $current_page . " of " . $total_pages; if ($current_page < $total_pages) { $final_result_html .= " Next >"; } $final_result_html .= "
"; } //replace chars that old machines probably can't handle function clean_str($str) { $str = str_replace("‘", "'", $str); $str = str_replace("’", "'", $str); $str = str_replace("“", '"', $str); $str = str_replace("”", '"', $str); $str = str_replace("–", '-', $str); $str = str_replace("'", "'", $str); return $str; } ?> AlpineFind!
Alpine Find!

Leap again:



Search Results for



AlpineFind!

The Search Engine for Vintage Computers



Leap to:





Built by Action Retro on YouTube | Why build such a thing?

Powered by DuckDuckGo