Bekijk de onderstaande video om te zien hoe je onze site als een web app op je startscherm installeert.
Opmerking: Deze functie is mogelijk niet beschikbaar in sommige browsers.
ja maar die van google kijkt naar het gehele domein.
ik zoek echt een zoekmachine die verfijnt zoekt. dus echt tot de laatste punt op een pagina.
Een aangepaste zoekmachine maken zei:Afzonderlijke pagina's: als u www.mijnsite.nl/mijnpagina.html opgeeft, wordt alleen de pagina mijnpagina.html op www.mijnsite.nl opgenomen.
Gehele sites: door www.mijnsite.nl/* op te geven, worden alle pagina's op www.mijnsite.nl opgenomen.
Delen van sites: u kunt wildcardpatronen gebruiken om alleen bepaalde delen van een site op te nemen. Met www.mijnsite.nl/*informatie* bijvoorbeeld, worden alleen bestanden op www.mijnsite.nl opgenomen die het woord informatie in de naam bevatten.
Gehele domeinen: u kunt aan de hand van *.mijndomein.nl ook een geheel domein opgeven. Als u mijndomein.nl opgeeft, veranderen we dit automatisch in *.mijndomein.nl/*. Als dit niet is wat u wilt, kunt u het in het configuratiescherm wijzigen.
er word ook gezocht op de titel van de pagina.<title>pagina voor indexatie</title>
<META NAME="description" CONTENT="pagina met meta tags zodat hij word geïndexeert met ecross\' zoek machine">
<META NAME="keywords" CONTENT="pagina, meta, tags">
als je een geïntegreerde zoek machine wil hebben waarvan je de reseltaten ook kan opmaken enzo moet je er zelf een maken (of kopieren) door bijv. php.
Je website moet dan wel php ondersteunen.
Het is mogenlijk om het met een database te doen met al je pagina's met tags erbij, maar dat is erg veel werk (en niet zo makkelijk te kopieren en plakken).
Ik ben zelf op dit iedee gekomen: een eigen zoekmachine op meta tags. Je kan een voorbeeld hier bekijken.
ik heb het php script even niet bijdehand (kan ik vanavond posten).
het werkt simpel; je zet op elke pagina die je doorzocht wil hebben je meta tags neer bijvoorbeeld:
er word ook gezocht op de titel van de pagina.
<html>
<head>
<title>zoek machine op meta tags + titels in eigen folder</title>
<meta name="keywords" content="zoek machine om mijn website te doorzoeken via meta tags zodat er geen database nodig is">
</head>
<body>
<h4>er word gezocht op de meta tags en titels van de bestanden in de directorie</h4>
<form action='<?php $_SERVER['SCRIPT_NAME'] ?>' method='GET'>
zoek woord: <input type='text' value='<?php $_GET['words'] ?>' name='words'><input type='submit' value='zoek!'>
</form>
<?php
$meta = array();
if ($handle = opendir('./')) { //kies eventueel een andere dir.
/* This is the correct way to loop over the directory. */
while (false !== ($file = readdir($handle))) {
$description = (get_meta_tags($file)); // haal meta tags op + stop in $description
$data = implode("", file($file));
preg_match ("/<title>([^`]*?)<\/title>/", $data, $match); // haal de titel uit het bestand en stop het in match
$titleofpage = $match[1];
if (!empty($description)){
array_push($description, $file); // stop de filenaam in $description.
array_push($description, $titleofpage); // stop titel in $description
array_push($meta, $description);} // stop array $description in array $meta (multidementionnaal)
}
closedir($handle);
}
$words = str_replace(" ", "|", $_GET['words']); // vervang spatie naar |
$search = "*".$words."*i";
foreach($meta as $number => $page){ // doorloop $meta
if(preg_match($search, $page['keywords']) and preg_match($search, $page['1'])){ // als keywords (van meta tag) en de titel matchen met een van de ingevulde woorden
$high .= "<p>"; // stop in $high
$high .= "<a href='".$page['0']."'>".$page['1']."</a><br>";
$high .= $page['keywords']."<br>";
$high .= $page['description'];
$high .= "</p>";
}
elseif(preg_match($search, $page['keywords']) or preg_match($search, $page['1'])){ // als keywords (van meta tag) of de titel matchen met een van de ingevulde woorden
$low .= "<p>"; // stop in $low
$low .= "<a href='".$page['0']."'>".$page['1']."</a><br>";
$low .= $page['keywords']."<br>";
$low .= $page['description'];
$low .= "</p>";
}
}
//$replace = "<b>".$_GET['words']."</b>"; /* werkt nog niet, zou de gezochte woorden dik gedrukt moeten maken */
if (isset($high)){
//str_replace($_GET['words'], $replace, $high); /* werkt nog niet, zou de gezochte woorden dik gedrukt moeten maken */
echo "beste hits:<br>".$high;}// laat eerst $high zien
if (isset($low)){
//str_replace($_GET['words'], $replace, $low); /* werkt nog niet, zou de gezochte woorden dik gedrukt moeten maken */
echo "hits:<br>".$low;}// en laat dan $low zien
if (!isset($high) and !isset($low)){
echo "er zijn geen hit op deze zoek term";}// als er niets in $high en $low zit
?>
<html>
<head>
<title>zoek machine op meta tags + titels in eigen folder oud</title>
<meta name="keywords" content="zoek machine om mijn website te doorzoeken via meta tags zodat er geen database nodig is">
</head>
<body>
<h4>er word gezocht op de meta tags en titels van de bestanden in de directorie</h4>
<form action='<?php $_SERVER['SCRIPT_NAME'] ?>' method='GET'>
zoek woord: <input type='text' value='<?php echo $_GET['words'] ?>' name='words'><input type='submit' value='zoek!'>
</form>
<?php
$meta = array();
if ($handle = opendir('./')) { //kies eventueel een andere dir.
/* This is the correct way to loop over the directory. */
while (false !== ($file = readdir($handle))) {
if (is_dir($file) and $file != '.' and $file != '..')
{
if ($handle2 = opendir($file)) {
while (false !== ($file2 = readdir($handle2))) {
$file2 = $file.'/'.$file2;
$description = (get_meta_tags($file2)); // haal meta tags op + stop in $description
$data = implode("", file($file2));
preg_match ("/<title>([^`]*?)<\/title>/", $data, $match); // haal de titel uit het bestand en stop het in match
$titleofpage = $match[1];
if (!empty($description)){
array_push($description, $file2); // stop de filenaam in $description.
array_push($description, $titleofpage); // stop titel in $description
array_push($meta, $description);} // stop array $description in array $meta (multidementionnaal)
}
}
}
else {
$description = (get_meta_tags($file)); // haal meta tags op + stop in $description
$data = implode("", file($file));
preg_match ("/<title>([^`]*?)<\/title>/", $data, $match); // haal de titel uit het bestand en stop het in match
$titleofpage = $match[1];
if (!empty($description)){
array_push($description, $file); // stop de filenaam in $description.
array_push($description, $titleofpage); // stop titel in $description
array_push($meta, $description); // stop array $description in array $meta (multidementionnaal)
}
}
}
closedir($handle);
}
$words = str_replace(" ", "|", $_GET['words']); // vervang spatie naar |
$words = str_replace("+", " ", $words);
$search = "*".$words."*i";
foreach($meta as $number => $page){ // doorloop $meta
if(preg_match($search, $page['keywords']) and preg_match($search, $page['1'])){ // als keywords (van meta tag) en de titel matchen met een van de ingevulde woorden
$high .= "<p>"; // stop in $high
$high .= "<a href='".$page['0']."'>".$page['1']."</a><br>";
$high .= $page['keywords']."<br>";
$high .= $page['description'];
$high .= "</p>";
}
elseif(preg_match($search, $page['keywords']) or preg_match($search, $page['1'])){ // als keywords (van meta tag) of de titel matchen met een van de ingevulde woorden
$low .= "<p>"; // stop in $low
$low .= "<a href='".$page['0']."'>".$page['1']."</a><br>";
$low .= $page['keywords']."<br>";
$low .= $page['description'];
$low .= "</p>";
}
}
//$replace = "<b>".$_GET['words']."</b>"; /* werkt nog niet, zou de gezochte woorden dik gedrukt moeten maken */
if (isset($high)){
//str_replace($_GET['words'], $replace, $high); /* werkt nog niet, zou de gezochte woorden dik gedrukt moeten maken */
echo "beste hits:<br>".$high;}// laat eerst $high zien
if (isset($low)){
//str_replace($_GET['words'], $replace, $low); /* werkt nog niet, zou de gezochte woorden dik gedrukt moeten maken */
echo "hits:<br>".$low;}// en laat dan $low zien
if (!isset($high) and !isset($low)){
echo "er zijn geen hit op deze zoek term";}// als er niets in $high en $low zit
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
<head>
<title>Indexer</title>
</head>
<body>
<?php
require_once "config.inc.php";
function ProcessFile($fname)
{
global $db;
global $group;
$re_match_title = '<title>([^<]*)<\/title>';
$re_match_anchor = '<a\s([^>]*)>';
$re_match_name = 'name="([^"]*)"';
$input = @file_get_contents($fname);
if ($input === false) return 0;
$title = '';
if (preg_match("/{$re_match_title}/siU", $input, $matches)) {
if (isset($matches[1])) {
$title = html_entity_decode($matches[1]);
}
}
echo "<p>{$fname}</p>";
$q = "SELECT id,location,title FROM url WHERE location='" . mysql_real_escape_string($fname, $db) . "';";
$res = mysql_query($q, $db);
if ($res === false) die(mysql_error($db));
if (mysql_num_rows($res) == 0) {
$q = 'INSERT INTO url (location, title) VALUES (\'' . mysql_real_escape_string($fname, $db) . '\', \'' .
mysql_real_escape_string($title, $db) . '\');';
$res = mysql_query($q, $db);
if ($res === false) die(mysql_error($db));
$url_id = mysql_insert_id($db);
if ($url_id === false) die(mysql_error($db));
} else {
$row = mysql_fetch_assoc($res);
$url_id = $row['id'];
if ($title != $row['title']) {
$q = 'UPDATE url SET title=\'' . mysql_real_escape_string($title, $db) . "' WHERE id={$url_id};";
$res = mysql_query($q, $db);
if ($res === false) die(mysql_error($db));
}
}
$ftotal = 0;
if (preg_match_all("/{$re_match_anchor}/siU", $input, $matches, PREG_SET_ORDER)) {
foreach ($matches as $match) {
if (preg_match("/{$re_match_name}/siU", $match[1], $name)) {
//echo "<a href=\"{$fname}#{$name[1]}\">{$name[1]}</a><br>";
$pg_n = mysql_real_escape_string(str_replace('_', ' ', $name[1]), $db);
$anchor = mysql_real_escape_string(($name[1]), $db);
$q = 'INSERT INTO entry (keyword, `group`, url, anchor) '
. " VALUES ('{$pg_n}', {$group}, {$url_id}, '{$anchor}');";
if (mysql_query($q, $db) === false) {
echo "error: {$q}";
die(mysql_error($db));
}
++$ftotal;
}
}
}
return $ftotal;
}
function ScanDirs($dir, $callback, $recurse)
{
$total = 0;
echo "<h2>$dir</h2>";
//$files = scandir($dir);
$dh = opendir($dir);
while (false !== ($filename = readdir($dh))) {
$files[] = $filename;
}
closedir($dh);
foreach ($files as $filename) {
if (in_array($filename, array('.', '..')) ) continue;
if (is_dir($dir . '/' . $filename)) {
if ($recurse) {
ScanDirs($dir . '/' . $filename, $callback, true);
}
} else if (is_file($dir . '/' . $filename)){
$pos = strrpos($filename, '.');
if ($pos !== false) {
$ext = substr($filename, $pos+1);
if (($ext == 'html') OR ($ext == 'php')) {
$total += $callback($dir . '/' . $filename);
}// else echo "<p>$ext</p>";
}
}
}
return $total;
}
$start = microtime(true);
$db = db_connect();
$res = mysql_query('SELECT * FROM `group`;', $db);
if ($res === false) die(mysql_error($db));
while ($row = mysql_fetch_array($res)) {
echo "<h1>{$row['naam']}</h1>";
print_r($row);
// verwijder oude entries
//$db->query('BEGIN;');
mysql_query('DELETE FROM entry WHERE `group`=' . $row['id'] . ';', $db)
|| die(mysql_error());
$group = $row['id'];
if ($row['directory'] == '') $dir = '..';
else $dir = '../' . $row['directory'];
$tot = ScanDirs($dir, 'ProcessFile', $row['recurse']);
echo "<p>Aantal keywords: {$tot}</p>";
// scan en voeg nieuwe toe
//$db->query('COMMIT;');
}
$time_elapsed = microtime(true) - $start;
/*
SELECT "group".naam, entry.keyword, url.location || '#' || entry.anchor
FROM entry,url,"group"
WHERE keyword='monohull' AND entry.url=url.id AND "group".id=entry."group";
*/
mysql_close($db);
?>
<p><?php echo $time_elapsed ?> seconds</p>
</body>
</html>
We gebruiken essentiële cookies om deze site te laten werken, en optionele cookies om de ervaring te verbeteren.