PHP ver gevorderde |
|
De functie hier is inderdaad wat vreemd, ik was namelijk een stukje vergeten erbij te plakken hier.
Toch werkt de functie nog niet goed. Ik krijg niet altijd een resultaat voor $place; terug. Dit zijn de functies:
<?php
function array_isearch ($term, $stack) {
$stack = strtolower($stack);
$term = strtolower($term);
$stack = explode(' ', $stack);
$place = array_search($term, $stack);
return $place;
}
function zoekterm($stack, $term) {
$place = array_isearch($term, $stack);
$place = $place[0];
$stack = explode(' ', $stack);
$count = count($stack)-1;
$result = array();
if ($place > $count-10) {
$offset = $count - $place;
}
elseif ($place-10 < 0) {
$offset = 10-$place;
}
else {
$result[] = '...';
for($i=($place-9); $i < ($place+10); $i++) {
$result[] = $stack[$i];
}
$result[] = '...';
}
$res = implode(' ', $result);
$res = ubb_code($res);
$res = preg_replace("#(".$term.")+#i", "<strong>\\1</strong>", $res);
return $res;
}
?>
<?php function array_isearch ($term, $stack) { return $place; } function zoekterm($stack, $term) { $place = array_isearch($term, $stack); $place = $place[0]; $count = count($stack)-1; if ($place > $count-10) { $offset = $count - $place; } elseif ($place-10 < 0) { $offset = 10-$place; } else { $result[] = '...'; for($i=($place-9); $i < ($place+10); $i++) { $result[] = $stack[$i]; } $result[] = '...'; } $res = ubb_code($res); $res = preg_replace("#(".$term.")+#i", "<strong>\\1</strong>", $res); return $res; } ?>
en zo roep ik ze aan:
<?php
if (mysql_num_rows($qzoek) > 0) {
$tpl -> NewBlock('zoekresultaten');
$tpl -> Assign(array('resultaten' => mysql_num_rows($qzoek), 'zoekterm' => $zoekterm));
while ($res = mysql_fetch_assoc($qzoek)) {
$tpl -> NewBlock('zoekresultaat');
$tpl -> Assign(array('pagina' => $res['pagina'],
'titel' => $res['titel'],
'resultaat' => zoekterm($res['inhoud'], $zoekterm)));
}
?>
<?php $tpl -> NewBlock('zoekresultaten'); $tpl -> NewBlock('zoekresultaat'); $tpl -> Assign(array('pagina' => $res['pagina'], 'titel' => $res['titel'], 'resultaat' => zoekterm($res['inhoud'], $zoekterm))); } ?>
Wat ook wel vervelend is, is dat de deadline vanavond 0.00u is... |