HTML file search script problem

Hello, I have a question how to make this search find me exact match from a html file. Example - If in file exist words ‘TA1’ and ‘TA11’, and I enter in search field TA1, I get the ‘TA11’ in the first place. How can I get ‘TA1’ to be on the top? I just want to add a search script for my own company website, I dont know much about coding, just some basics. So, please, if anyone could help me out I would be grateful. Thank you. Here is the code.
[php]<?
// English Configuration
$my_server = “http://”.getenv(“SERVER_NAME”).":".getenv(“SERVER_PORT”); // Your Server (generally no changes needed)
$my_root = getenv(“DOCUMENT_ROOT”); // Your document root (generally no changes needed)
$s_dirs = array(""); // Which directories should be searched ("/dir1","/dir2","/dir1/subdir2","/Verzeichniss2/Unterverzeichniss2")? --> $s_dirs = array(""); searches the entire server
$s_skip = array("…",".",“subdir2”); // Which files/dirs do you like to skip?
$s_files = “html|htm|HTM|HTML|php3|php4|php|txt”; // Which files types should be searched? Example: “html$|htm$|php4$”
$min_chars = “2”; // Min. chars that must be entered to perform the search
$max_chars = “4”; // Max. chars that can be submited to perform the search
$default_val = “postcode”; // Default value in searchfield
$limit_hits = array(“1”); // How many hits should be displayed, to suppress the select-menu simply use one value in the array --> array(“100”)
$message_1 = “Sorry, we do not cover your area yet.”; // Invalid searchterm
$message_2 = “Please enter at least ‘$min_chars’, highest ‘$max_chars’ characters.”; // Invalid searchterm long ($min_chars/$max_chars)
$message_3= “Your searchresult for postcode:”; // Headline searchresults
$message_4 = “Sorry, we do not cover your area yet”; // No hits
$message_5 = “results”; // Hits
$message_6 = “Match case”; // Match case
$no_title = “Untiteled”; // This should be displayed if no title or empty title is found in file
$limit_extracts_extracts = “integer”; // How many extratcts per file do you like to display. Default: “” --> every extract, alternative: ‘integer’ e.g. “3”
$byte_size = “51200”; // How many bytes per file should be searched? Reduce to increase speed

// search_form(): Gibt das Suchformular aus
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",
“<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 “SELECTED”;
echo “>”.$limit_hits[$i]." $message_5\n";
}
echo " “;
}
echo
“<input type=“submit” value=“OK” class=“button”>\n”,

\n”,
“<span class=“checkbox”>$message_6 <input type=“checkbox” name=“case” value=“true” class=“checkbox””;
if($case)
echo " CHECKED”;
echo
“>\n”,

\n”,
Enter first part of your post code”,
“\n”;
}

// search_headline(): Ueberschrift Suchergebnisse
function search_headline($HTTP_GET_VARS, $message_3) {
@$keyword=$HTTP_GET_VARS[‘keyword’];
@$action=$HTTP_GET_VARS[‘action’];
if($action == “SEARCH”) // Volltextsuche
echo “<h1 class=“result”>$message_3 “.htmlentities(stripslashes($keyword)).””;
}

// search_error(): Auf Fehler testen und Suchfehler anzeigen
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”) { // Volltextsuche
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”>$message_1
$message_2

”;
$HTTP_GET_VARS[‘action’] = “ERROR”; // Suche abbrechen
}
}
}

// search_dir(): Volltextsuche in Verzeichnissen
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”) { // Volltextsuche
foreach($s_dirs as $dir) { // Alle Verzeichnisse in $s_dirs durchsuchen
$handle = @opendir($my_root.$dir);
while($file = @readdir($handle)) {
if(in_array($file, $s_skip)) { // Alles in $skip auslassen
continue;
}
elseif($count_hits>=$limit) {
break; // Maximale Trefferzahl erreicht
}
elseif(is_dir($my_root.$dir."/".$file)) { // Unterverzeichnisse durchsuchen
$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); // search_dir() rekursiv auf alle Unterverzeichnisse aufrufen
}
elseif(preg_match("/($s_files)$/i", $file)) { // Alle Dateien gemaess Endungen $s_files
$fd=fopen($my_root.$dir."/".$file,“r”);
$text=fread($fd, $byte_size); // 50 KB
$keyword_html = htmlentities($keyword);
if($case) { // Gross-/Kleinschreibung beruecksichtigen?
$do=strstr($text, $keyword)||strstr($text, $keyword_html);
}
else {
$do=stristr($text, $keyword)||stristr($text, $keyword_html);
}
if($do) {
$count_hits++; // Treffer zaehlen
if(preg_match_all("=<title[^>]>(.)=", $text, $titel)) { // Generierung des Link-Textets aus …
if(!$titel[1][0]) // ist leer…
$link_title=$no_title; // …also $no_title
else
$link_title=$titel[1][0]; // … vorhanden…
}
else {
$link_title=$no_title; // …ansonsten $no_title
}
echo " $link_title
“; // Ausgabe des Links
$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++) { // Kein Limit angegeben also alle Vorkommen ausgeben
if (!empty($match[$h][3]))
printf(“Your post code matched in: %s%s%s ”, $match[$h][1], $match[$h][3], $match[$h][4]);
}
}
echo “

”;
flush();
}
fclose($fd);
}
}
@closedir($handle);
}
}
}

// search_no_hits(): Ausgabe ‘keine Treffer’ bei der Suche
function search_no_hits($HTTP_GET_VARS, $count_hits, $message_4) {
@$action=$HTTP_GET_VARS[‘action’];
if($action == “SEARCH” && $count_hits<1) // Volltextsuche, kein Treffer
echo “<p class=“result”>$message_4

”;
}

?>[/php]

Sponsor our Newsletter | Privacy Policy | Terms of Service