Hlavní navigace

Jak na jednoduché webovské vyhledávání?

Leoš Literák 17. 8. 1999

Chtěli byste dát na svůj web prohledávání vašich stránek a báli jste se to naprogramovat? Nemusíte psát Hance ani Sally. Stačí si otevřít následující článek.

Co to umí? To, co potřebujete. Prohledá to rekurzivně všechny html stránky v daném adresáři a najde výskyt hledaného slova. Vypíše odkazy na všechny nalezené soubory, včetně kousku textu s nalezeným slovem, které je zvýrazněno. Pokud kliknete na odkaz, spustí se druhý skript, který zvýrazní všechny výskyty hledaného textu (větší tučné písmo). Víc to neumí, ale spoustě lidí to bude stačit :-).

Použití je poměrně jednoduché – stačí mít nainstalovanou podporuphp3 a stahnout si archiv se dvěma krátkými soubory. První z nich je vlastní prohledávač – hledej.php3. Druhý skript bold.php3 zase zvýrazňuje hledané slovo v nalezené stránce. Tyto soubory zkopírujte do své domovské stránky. Potom přidejte následující text do každé html stránky, která má poskytovat tuto službu.

<form action="hledej.php3" method="get">
Hledej text: <input type="text" size="20" maxlength="30" name="string">
<input type="submit" value="Odeslat">


Pokud to chcete vidět v praxi, podívejte se na moji stránku (omluva – dnes ze záhadného důvodu nefungují kaskádovité styly, takže vzhled je jiný než obvykle).

A jaká je licence? Pro vlastní použití zdarma. Pro ostatní taky zdarma, pokud za tento skript nebudou vybírat od zákazníků peníze. Pokud budete, pošlete mi nějaký dárek, třeba pizzerie má telefon 0656–836999.

Našli jste v článku chybu?

11. 6. 2003 15:26

fISH (neregistrovaný)

Ano to je pravda. Take jsem se s timto trochu trapil. V podobe, kdy to "znici" tag u obrazku nebo treba u odkazu je to nepouzitelne. Nasledujici kod funguje a tagy necha tagama...

//rozdelim text do pole na tagy a ostatni text (zahrnu i rozdelovaci vzorek)

$div = preg_split('/(<[^><]*>)/',$text,-1,2);

//v kazdem prvku pole, pokud to neni tag provedu pozadovane nahrazeni

while (list($key, $part) = each ($div)) {

if (!(ereg("<.*",$part)))

$div[$key]=eregi_replace("…











11. 9. 2001 20:44

Miro Vich (neregistrovaný)

Zdravim... Dako na Vasej stranke nejdu linky na ten skript mohli by ste sa na to prosim pozriet? dakujem mir

Podnikatel.cz: Přehledná titulka, průvodci, responzivita

Přehledná titulka, průvodci, responzivita

DigiZone.cz: Česká televize mění schéma ČT :D

Česká televize mění schéma ČT :D

Vitalia.cz: „Připluly“ z Německa a možná obsahují jed

„Připluly“ z Německa a možná obsahují jed

Podnikatel.cz: Vládu obejde, kvůli EET rovnou do sněmovny

Vládu obejde, kvůli EET rovnou do sněmovny

Lupa.cz: Slevové šílenství je tu. Kde nakoupit na Black Friday?

Slevové šílenství je tu. Kde nakoupit na Black Friday?

Lupa.cz: UX přestává pro firmy být magie

UX přestává pro firmy být magie

Lupa.cz: Co se dá měřit přes Internet věcí

Co se dá měřit přes Internet věcí

Vitalia.cz: Jsou čajové sáčky toxické?

Jsou čajové sáčky toxické?

DigiZone.cz: Recenze Westworld: zavraždit a...

Recenze Westworld: zavraždit a...

Měšec.cz: U levneELEKTRO.cz už reklamaci nevyřídíte

U levneELEKTRO.cz už reklamaci nevyřídíte

Podnikatel.cz: EET: Totálně nezvládli metodologii projektu

EET: Totálně nezvládli metodologii projektu

Vitalia.cz: To není kašel! Správná diagnóza zachrání život

To není kašel! Správná diagnóza zachrání život

Root.cz: Vypadl Google a rozbilo se toho hodně

Vypadl Google a rozbilo se toho hodně

Lupa.cz: Avast po spojení s AVG propustí 700 lidí

Avast po spojení s AVG propustí 700 lidí

DigiZone.cz: Sony KD-55XD8005 s Android 6.0

Sony KD-55XD8005 s Android 6.0

Podnikatel.cz: Prodává přes internet. Kdy platí zdravotko?

Prodává přes internet. Kdy platí zdravotko?

Lupa.cz: Není sleva jako sleva. Jak obchodům nenaletět?

Není sleva jako sleva. Jak obchodům nenaletět?

Lupa.cz: Propustili je z Avastu, už po nich sahá ESET

Propustili je z Avastu, už po nich sahá ESET

DigiZone.cz: NG natáčí v Praze seriál o Einsteinovi

NG natáčí v Praze seriál o Einsteinovi

Vitalia.cz: Baletky propagují zdravotní superpostel

Baletky propagují zdravotní superpostel