Hvor indsætter jeg "Søgningen gav intet resultat"
Har følgende søgescript, som fungerer "næsten" tilfredsstillende:<?php
if(isset($_POST['sogning']) && ($_POST['sogning']!="")) {
$text = "Hvordan kringler jeg det nu, så det ikke er HELE teksten der vises som output, men kun en del af den (naturligvis den del hvor søgeordet indgår).
Det kan jo godt være at søgeordet står midt nede i teksten, og derfor skal tekstoutputtet i så fald vises med ...... - men naturligvis skal vi kun have de tre prikker HVIS der udelades noget på den side af det viste hvor prikkerne står.";
if(! function_exists('stripos') ) {
function stripos($haystack, $needle, $offset=0) {
return strpos(strtolower($haystack), strtolower($needle), $offset);
}
}
$term = $_POST['sogning']; // Hvad der søges efter
$display = 20; // antal tegn der vises før/efter
$pos = stripos($text,$term);
$beginpos = $pos - $display;
$endpos = $pos + $display + strlen($term);
if( $beginpos < 0 )
$beginpos = 0;
if( $beginpos == 0 )
$pre = '';
else
$pre = '...';
if( $endpos >= strlen($text) )
$post = '';
else
$post = '...';
$text = substr($text,$beginpos,($endpos-$beginpos+strlen($term)));
$term_preg = preg_quote($term);
$text = preg_replace("/($term_preg)/im",'<b>\1</b>',$text);
echo $pre.$text.$post;
}
else
{
?>
<FORM ACTION="<? echo $_SERVER['PHP_SELF']; ?>" METHOD="POST" NAME=formnavn>
<INPUT TYPE="text" NAME="sogning">
<INPUT TYPE="submit" VALUE="søg">
</FORM>
<?}?>
Mit eneste problem med scriptet er, at hvis der IKKE er noget match, så skriver det blot begyndelsen af $text i stedet for at skrive "Din søgning gav intet resultat".
Hvor skal jeg sætte det ind - for at få dette mulige output?
