Files
FrogFindMobile/index.php
Victor Bodinaud dd78fcafd9 📱Add mobile support
2025-03-18 11:26:37 +01:00

158 lines
5.4 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?php
require_once('vendor/autoload.php');
$show_results = FALSE;
$results_html = "";
$final_result_html = "<hr>";
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;
$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 :( <br>";
}
$simple_results = $results_html;
$simple_results = str_replace('strong>', 'b>', $simple_results); //change <strong> to <b>
$simple_results = str_replace('em>', 'i>', $simple_results); //change <em> to <i>
$simple_results = clean_str($simple_results);
$result_blocks = explode('<h2 class="result__title">', $simple_results);
$total_results = count($result_blocks) - 1;
for ($x = 1; $x <= $total_results; $x++) {
if (strpos($result_blocks[$x], '<a class="badge--ad">') === 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("</a>", "", 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('</a>', $result_snippet)[0];
$final_result_html .= "<br><a href='" . $result_link . "'><font size='4'><b>" . $result_title[0] . "</b></font><br><font color='#008000' size='2'>"
. $result_display_url . "</font></a><br>" . $result_snippet . "<br><br><hr>";
}
}
}
//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("&#x27;", "'", $str);
return $str;
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 2.0//EN">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<html>
<head>
<title>FrogFind!</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
<style type="text/css">
a {
padding: 4px 0;
display: inline-block;
}
input[type="text"] {
font-size: 16px;
height: 24px;
margin-bottom: 8px;
width: 80%;
max-width: 280px;
}
input[type="submit"] {
font-size: 16px;
height: 32px;
padding: 2px 12px;
margin-top: 5px;
margin-bottom: 5px;
display: block;
}
.search-form {
margin: 10px 0;
}
</style>
</head>
<body style="margin: 5px; padding: 0;">
<?php if ($show_results) { // there's a search query in q, so show search results
?>
<form action="/" method="get" class="search-form">
<a href="/">
<font size=6 color="#008000">Frog</font>
<font size=6 color="#000000">Find!</font>
</a>
<div style="margin: 8px 0;">Leap again: <br>
<input type="text" size="30" name="q" value="<?php echo urldecode($query) ?>">
</div>
<input type="submit" value="Ribbbit!">
</form>
<hr>
<br>
<center>Search Results for <b><?php echo strip_tags(urldecode($query)) ?></b></center>
<br>
<?php echo $final_result_html ?>
<?php } else { // no search query, so show new search
?>
<br><br>
<center>
<h1>
<font size=7>
<font color="#008000">Frog</font>Find!
</font>
</h1>
</center>
<center>
<h3>The Search Engine for Vintage Computers</h3>
</center>
<br><br>
<center>
<form action="/" method="get">
Leap to: <br>
<input type="text" size="30" name="q"><br>
<input type="submit" value="Ribbbit!" style="margin: 10px auto;">
</form>
</center>
<br><br><br>
<small>
<center>Built by <b><a href="https://youtube.com/ActionRetro">Action Retro</a></b> on YouTube | <a href="about.php">Why build such a thing?</a></center><br>
<small>
<center>Powered by DuckDuckGo</center>
</small>
</form>
</form>
<?php } ?>
</body>
</html>