Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Hakukone

Sivun loppuun

Tuomas213 [19.02.2010 08:24:38]

#

Miten saan luotua hakukoneen joka hakee sivut Titlen mukaan ja tulostaa tulokset Iframen sisälle? Eli hakukone hakee omia html-sivuja.

Ja joo...Täällä näkyy olevan useampia hakukoodeja mutta mikään niistä ei sovi tuohon.

Tuomas213 [19.02.2010 09:43:43]

#

Laitan tähän vielä tuon scriptin jota olen yrittänyt muokata.
Eli olen yrittänyt saada tuon koodin niin että se tulostaa tulokset Ifarmeen eikä tyhjälle sivulle. Yritin löytää netistä apua tuohon, mutta ei löytynyt. Jossakin taisi lukea että tulosten tulostus Iframeen on vaikeaa.

Voisiko joku viisas auttaa?

<HEAD>

<SCRIPT LANGUAGE="JavaScript">

var item = new Array();

// "Page Name","path","Page Title","Many,Key,Words","Descriptive Comments"

c=0; item[c]=new Array("index.html","","DemoSite","index,main,start,home,front","Demonstration search engine data about an imagined but probable internet site.");
c++; item[c]=new Array("about.htm","","About Me","about,author,contact,email,who","Contact details and general information about the creator of the site and what the site is about.");
c++; item[c]=new Array("links.htm","","Links page","links,more,where,similar,friends","Links to my favourite sites which I find interesting. Other friends sites which have similar interests to my own.");
c++; item[c]=new Array("main.htm","main/","Main Page","content,main,focus","The main part of my site which contains what you have come to see. Lots of stuff like that and more great things. All in a sub directory.");
c++; item[c]=new Array("logo.jpg","main/images/","Link Logo","link,image,logo,graphic","The logo.jpg is just a small image which you can place on your site as a link to me. It's in a second level subdirectory.");

page="<html><head><title>Search Results</title></head><body bgcolor='white'><center><table border=0 cellspacing=10 width=100%>";


function search(frm) {
win = window.open("","","scrollbars");
win.document.write(page);
txt = frm.srchval.value.split(" ");
fnd = new Array(); total=0;
for (i = 0; i < item.length; i++) {
fnd[i] = 0; order = new Array(0, 4, 2, 3);
for (j = 0; j < order.length; j++)
for (k = 0; k < txt.length; k++)
if (item[i][order[j]].toLowerCase().indexOf(txt[k]) > -1 && txt[k] != "")
fnd[i] += (j+1);
}
for (i = 0; i < fnd.length; i++) {
n = 0; w = -1;
for (j = 0;j < fnd.length; j++)
if (fnd[j] > n) { n = fnd[j]; w = j; };
if (w > -1) total += show(w, win, n);
fnd[w] = 0;
}
win.document.write("</table><br>Total found: "+total+"<br></body></html>");
win.document.close();
}
function show(which,wind,num) {
link = item[which][1] + item[which][0];
line = "<tr><td><a href='"+link+"'>"+item[which][2]+"</a> Score: "+num+"<br>";
line += item[which][4] + "<br>"+link+"</td></tr>";
wind.document.write(line);
return 1;
}
</script>
</HEAD>

<BODY>

<center>

<form method=get action="javascript:void(0)" onsubmit="search(this); return false;">
<tr><td><input type=text name=srchval value=""><input type=submit value="Search"></td></tr>
</form>

</center>

</BODY>

Lebe80 [19.02.2010 10:14:06]

#

Yksi vaihtoehto on laittaan sivustolle valmis Googlen Custom Search, niin ainakin tulee tehokas hakukone sivustolle.

Tuomas213 [19.02.2010 12:02:54]

#

Ei tuo Custom Search toimi tässä tapauksessa. Koska haluan että hakutulokset näytetään oman sivun Iframessa. Ja sivustoa ei ole tarkotus laittaa nettiin.

Macro [19.02.2010 13:43:38]

#

Kyllähän hakulinkin voi kohdentaa iframeen. Ei ole tarkoitus laittaa nettiin? Mitä sinä sitten olet nettiscriptiä tuossa väsännyt?

pistemies [19.02.2010 15:39:23]

#

Olet huitassu homman javascriptiin.
Mutta miksi kaikki heti iframeen?
Eikös olis kätsempi tulostaa vaan se title, josta voi avata linkin...selain säästyy ylimääräiseltä kuormitukselta...

peg [19.02.2010 17:41:20]

#

Jos yhtään ymmärsin niin php:ssa on functio get_meta_tags
https://www.php.net/manual/en/function.get-meta-tags.php

<?php
$tags = get_meta_tags('http://hs.fi/');
echo $tags['title'],'<br>';
echo $tags['keywords'];
?>

Tuomas213 [19.02.2010 23:09:36]

#

Ehkä kirjoitan vähän sekavasti mutta...
Se on tarkotuskin että siihen Iframeen tulostetaan title josta voi avata linkin.

peg:in idea vaikuttaa tosi hyvältä. Mutta se ei ratkase tuota Iframe asiaa.


Ja kyseesä on siis mun HTML-oppimistehtävä, ja unohdin mainita että tuo aiempi scripti on vain kopio jota olen yrittänyt muuttaa sopivaksi. Javascriptin käyttö on aika heikkoa ja php:n vielä heikompaa. Eli tarvin "kädestä pitäen" neuvoja.

pistemies [20.02.2010 14:18:43]

#

Kyllä sinun pitänee sitten ruveta opiskelemaan php:ta. Et kauhiasti opi, jos kaikki työnnetään kouraan.

Mutta vinkkejä hiukan. Voit tiedostojen nimet kirjoittaa taulukkoon (php-array) ja poimia siitä silmukassa jokaisen niiden titlen.
Suosittelen kuitenkin, että laitat ne tiedostot kaikki samaan hakemistoon ja listaat ne sieltä tähän tyyliin

<?php
 $open =opendir("uutiset/"); // Avattava kansio

    while( gettype($file = readdir($open) ) != boolean ) {
       echo $file.'<br>';
 }
   closedir($open);
?>

Tämä sallii sinun lisätä ja poistaa sinne tiedostoja ilman että tarvitsee muuttaa koodia.
Muutat tuohon tulostuksen kohdalle tarpeelliset muutokset, kuten tuo pegin skriptin sovellat siihen jne.

Macro [20.02.2010 14:40:52]

#

Hakukoneessa tuskin riittää, että haet vain kaikki hakemiston tiedostot. Kenties kannattaa käyttää strpos-funktiota, jolla voit tarkistaa onko sana tiedostossa.

pistemies [21.02.2010 12:15:11]

#

Macro kirjoitti:

Hakukoneessa tuskin riittää, että haet vain kaikki hakemiston tiedostot. Kenties kannattaa käyttää strpos-funktiota, jolla voit tarkistaa onko sana tiedostossa.

Aivan. Kuten sanoin, pitää tehdä tuohon tarpeelliset muutokset. :)

Ps. on siinä sitten pientä näpräystä, ettei etsi sanaa html-tageista...

Macro [21.02.2010 12:42:45]

#

$sivu = preg_replace("/\<(.*?)\>/", "", file_get_contents("sivu.php"));

=)

Mod. korjasi kooditagit!

Metabolix [21.02.2010 13:36:17]

#

Tai ihan vain strip_tags.

Macro [21.02.2010 13:58:44]

#

Ehkä vähän yksinkertaisempi systeemi.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta