Ik wil het onderstaande script gebruiken om mijn site te doorzoeken.... heb het werkend gezien maar ik krijg het zelf niet aan de praat.
Waar zou ik de eventuele surfernaam moeten invullen: is dit tussen "http://hier dus" oof tussen de haakjes in "server_name" en wat moet ik dan met "http://"doen? en waar dient de poort ingevuld te worden - is dit tussen de "." of "server_port"
verder zie ik in het script : html staan, al mijn pagina`s hebben de extensie php, hoe voeg ik deze hier ook nog aan toe?
$s_files = "html|HTML"; // Op welke extensies zoeken?
Groeten, Marc
Waar zou ik de eventuele surfernaam moeten invullen: is dit tussen "http://hier dus" oof tussen de haakjes in "server_name" en wat moet ik dan met "http://"doen? en waar dient de poort ingevuld te worden - is dit tussen de "." of "server_port"
verder zie ik in het script : html staan, al mijn pagina`s hebben de extensie php, hoe voeg ik deze hier ook nog aan toe?
$s_files = "html|HTML"; // Op welke extensies zoeken?
Groeten, Marc
PHP:
<?php
$my_server = "http://".getenv("SERVER_NAME").":".getenv("SERVER_PORT"); // Jouw server (gewoonlijk hoef je dit niet te veranderen)
$my_root = getenv("DOCUMENT_ROOT"); // Jouw document root (gewoonlijk hoef je dit niet te veranderen)
$s_dirs = array("/php","/javascript","/css","/php-manual"); // In welke directories moet gezocht worden? ("/dir1","/dir2","/dir1/subdir2","/nogeenandere/directory")? --> $s_dirs = array(""); met de laatste zoek je op de hele server
$s_skip = array("..",".","subdir2","programma-code","php-site-zoek-functie.html"); // Welke files of directories moeten er overgeslagen worden?
$s_files = "html|HTML"; // Op welke extensies zoeken?
$min_chars = "3"; // Minimum aantal letters (cijfers) wat in de zoekbox moet worden ingevuld
$max_chars = "30"; // Maximum aantal letters (cijfers) wat in de zoekbox mag worden ingevuld
$default_val = "zoekwoord"; // Default waarde van zoekveld
$limit_hits = array("10","25","50","100"); // Hoeveel zoekhits moeten er getoond worden, om het selectmenu niet te tonen voer je gewoon een vaste waarde in --> array("100")
$message_1 = "ongeldige zoekterm"; // ongeldige zoekterm
$message_2 = "voer op z`n minst in $min_chars, en maximaal $max_chars tekens."; // geen goede invoer lengte ($min_chars/$max_chars)
$message_3= "zoekresultaten voor "; // zoekresultaat
$message_4 = "oops, niets gevonden."; // noppes
$message_5 = "vinden"; // hoeveel zoekhits wil je hebben
$message_6 = "Match hoofdletters"; // hoofd of kleine letters exact of onbelangrijk
$no_title = "klik voor content"; // als er geen 'title' te vinden is laat je deze tekst zien
$limit_extracts_extracts = ""; // Hoeveel extracts per file wil je laten zien. Default: "" --> elke extract, alternatief: 'integer' b.v. "3"
$byte_size = "51200"; // Hoeveel bytes per pagina mag worden gezocht? Hoe minder, hoe sneller...
function search_form($HTTP_GET_VARS, $limit_hits, $default_val, $message_5, $message_6, $PHP_SELF) {
@$keyword=$HTTP_GET_VARS['keyword'];
@$case=$HTTP_GET_VARS['case'];
@$limit=$HTTP_GET_VARS['limit'];
echo "<form action=\"$PHP_SELF\" method=\"get\">\n",
"<div><input type=\"hidden\" value=\"SEARCH\" name=\"action\" />\n",
"<input type=\"text\" name=\"keyword\" class=\"text\" size=\"10\" maxlength=\"30\" value=\"" ;
if(!$keyword)
echo "$default_val";
else
echo str_replace("&","&",htmlentities($keyword));
echo "\" ";
echo "onfocus=\" if (value == '";
if(!$keyword)
echo "$default_val";
else
echo str_replace("&","&",htmlentities($keyword));
echo "') {value=''}\" onblur=\"if (value == '') {value='";
if(!$keyword)
echo "$default_val";
else
echo str_replace("&","&",htmlentities($keyword));
echo "'}\" /> ";
$j=count($limit_hits);
if($j==1)
echo "<input type=\"hidden\" value=\"".$limit_hits[0]."\" name=\"limit\" />";
elseif($j>1) {
echo
"<select name=\"limit\" class=\"select\">\n";
for($i=0;$i<$j;$i++) {
echo "<option value=\"".$limit_hits[$i]."\"";
if($limit==$limit_hits[$i])
echo "";
echo ">".$limit_hits[$i]." $message_5</option>\n";
}
echo "</select> ";
}
echo
"<input type=\"submit\" value=\"OK\" class=\"button\" />\n",
"<span class=\"checkbox\"><br />$message_6</span> <input type=\"checkbox\" name=\"case\" value=\"true\" class=\"checkbox\"";
if($case)
echo " CHECKED";
echo
" />\n",
"\n",
"</div></form>\n";
}
function search_headline($HTTP_GET_VARS, $message_3) {
@$keyword=$HTTP_GET_VARS['keyword'];
@$action=$HTTP_GET_VARS['action'];
if($action == "SEARCH")
echo "<h2 class=\"result\">$message_3 '<span class='schuinetekst'>".htmlentities(stripslashes($keyword))."</span>'</h2>";
}
function search_error($HTTP_GET_VARS, $min_chars, $max_chars, $message_1, $message_2, $limit_hits) {
global $HTTP_GET_VARS;
@$keyword=$HTTP_GET_VARS['keyword'];
@$action=$HTTP_GET_VARS['action'];
@$limit=$HTTP_GET_VARS['limit'];
if($action == "SEARCH") {
if(strlen($keyword)<$min_chars||strlen($keyword)>$max_chars||!in_array ($limit, $limit_hits)) { // Ist die Anfrage in Ordnung (min. '$min_chars' Zeichen, max. '$max_chars' Zeichen)?
echo "<p class=\"result\"> <span class='vettetekst'>$message_1</span><br /> $message_2</p>";
$HTTP_GET_VARS['action'] = "ERROR";
}
}
}
function search_dir($my_server, $my_root, $s_dirs, $s_files, $s_skip, $message_1, $message_2, $no_title, $limit_extracts, $byte_size, $HTTP_GET_VARS) {
global $count_hits;
@$keyword=$HTTP_GET_VARS['keyword'];
@$action=$HTTP_GET_VARS['action'];
@$limit=$HTTP_GET_VARS['limit'];
@$case=$HTTP_GET_VARS['case'];
if($action == "SEARCH") {
foreach($s_dirs as $dir) {
$handle = @opendir($my_root.$dir);
while($file = @readdir($handle)) {
if(in_array($file, $s_skip)) {
continue;
}
elseif($count_hits>=$limit) {
break;
}
elseif(is_dir($my_root.$dir."/".$file)) {
$s_dirs = array("$dir/$file");
search_dir($my_server, $my_root, $s_dirs, $s_files, $s_skip, $message_1, $message_2, $no_title, $limit_extracts, $byte_size, $HTTP_GET_VARS);
}
elseif(preg_match("/($s_files)$/i", $file)) {
$fd=fopen($my_root.$dir."/".$file,"r");
$text=fread($fd, $byte_size); // 50 KB
$keyword_html = htmlentities($keyword);
if($case) {
$do=strstr($text, $keyword)||strstr($text, $keyword_html);
}
else {
$do=stristr($text, $keyword)||stristr($text, $keyword_html);
}
if($do) {
$count_hits++;
if(preg_match_all("=<title[^>]*>(.*)</title>=siU", $text, $titel)) {
if(!$titel[1][0])
$link_title=$no_title;
else
$link_title=$titel[1][0];
}
else {
$link_title=$no_title;
}
echo " <a href=\"$my_server$dir/$file\" class=\"result\">$count_hits. $link_title</a><br />";
$auszug = strip_tags($text);
$keyword = preg_quote($keyword); // unescapen
$keyword = str_replace("/","\/","$keyword");
$keyword_html = preg_quote($keyword_html); // unescapen
$keyword_html = str_replace("/","\/","$keyword_html");
echo " <span class=\"extract\">";
if(preg_match_all("/((\s\S*){0,3})($keyword|$keyword_html)((\s?\S*){0,3})/i", $auszug, $match, PREG_SET_ORDER)); {
if(!$limit_extracts)
$number=count($match);
else
$number=$limit_extracts;
for ($h=0;$h<$number;$h++) {
if (!empty($match[$h][3]))
printf("<span class='schuinetekst'><span class='vettetekst'>..</span> %s<span class='vettetekst'>%s</span>%s <span class='vettetekst'>..</span></span>", $match[$h][1], $match[$h][3], $match[$h][4]);
}
}
echo "</span><br /><br />";
flush();
}
fclose($fd);
}
}
@closedir($handle);
}
}
}
function search_no_hits($HTTP_GET_VARS, $count_hits, $message_4) {
@$action=$HTTP_GET_VARS['action'];
if($action == "SEARCH" && $count_hits<1)
echo "<p class=\"result\">$message_4</p>";
}
?>