2014-07-15 10 views
5

Fondamentalmente ho un vecchio sito html statico (http://www.brownwatson.co.uk/brochure/page1.html) Ho bisogno di aggiungere una casella di ricerca ad esso per cercare una cartella chiamata/brochure all'interno di quella cartella è html documenti e immagini ecc ho bisogno di ricerca per trovare i numeri ISBN, numeri libro di riferimento, titoli ecc .. non c'è alcun database del fornitore di hosting ha php stavo cercando di creare qualcosa di simile:È necessario aggiungere una ricerca al sito HTML statico

<div id="contentsearch"> 
     <form id="searchForm" name="searchForm" method="post" action="search.php"> 
      <input name="search" type="text" value="search" maxlength="200" /> 
      <input name="submit" type="submit" value="Search" /> 
      </form> 
     <?php 
$dir = "/brochure/"; 

// Open a known directory, and proceed to read its contents 
if (is_dir($dir)) { 
if ($dh = opendir($dir)) { 
    while (($file = readdir($dh)) !== false) { 
     if($file == $_POST['search']){ 
      echo('<a href="'.$dir . $file.'">'. $file .'</a>'."\n"); 
     } 
    } 
    closedir($dh); 
} 
} 
?> 
     </div> 

lo so, so che questo è abbastanza male e non funziona qualche idea? Non ho creato nulla di simile in anni, e ho praticamente preso solo dei pezzi di codice e li ho uniti!

+0

Che cosa non funziona? Qualche errore? –

+0

Se stai cercando la corrispondenza esatta, prenderei tutti i file usando ['glob()'] (http://php.net/manual/en/function.glob.php)/['scandir() '] (http://au1.php.net/manual/en/function.scandir.php)/[' DirectoryItterator'] (http://au1.php.net/manual/en/class.directoryiterator.php) e poi controlla con qualcosa come ['in_array()'] (http://au1.php.net/manual/en/function.in-array.php). In alternativa puoi usare ['similar_text()'] (http://au1.php.net/manual/en/function.similar-text.php) per abbinare le stringhe :-) – Darren

+0

Molte grazie per la tua risposta non è mostrata qualsiasi risultato, probabilmente sto facendo qualcosa di veramente stupido vedi link: http://brownwatson.co.uk/search.php – user3839812

risposta

1

Se il tuo sito è ben indicizzato da Google, viene utilizzata una soluzione rapida e pronta Google CSE.

Oltre a quello per un sito Web statico con pagine html codificate e directory contenenti immagini; sì, è possibile creare un meccanismo di ricerca. Ma fidati di me è più frenetico e consumo di risorse, quindi creare un sito web dinamico.

L'utilizzo di PHP per cercare nelle directory e all'interno dei file sarà molto inefficiente. Invece di fornire complicate soluzioni PHP suggerirei di andare su un sito Web dinamico basato su CMS.

+0

Grazie, ho pensato che ho appena usato l'opzione di ricerca di Google per ora. Probabilmente finirà con l'aggiornamento a un sistema CMS in futuro. – user3839812

8

Un'opzione molto, molto pigro (per evitare la creazione di un Google Custom Search Engine) è quello di realizzare un modulo che punta a Google con un elemento di query nascosto che limita la ricerca per il proprio sito:

parte la pigrizia, questo metodo ti dà un po 'più di controllo sull'aspetto del modulo di ricerca, rispetto a un CSE.

9

Ci sono molte soluzioni disponibili per questo. In nessun ordine particolare:

gratuito o Open Source

  1. Google Custom Search Engine
  2. Tapir - servizio in hosting che indicizza pagine del tuo feed RSS.
  3. Tipue - plug-in javaScript auto-ospitato, ben documentato, include opzioni per i risultati di ricerca aggiunti.
  4. lunr.js - libreria javaScript.
  5. phinde -

Vedi anche http://indieweb.org/search#Software

di sottoscrizione (aka pagati) Servizi self hosted php e elasticsearch motore di ricerca basato:

  1. Google Site Search
  2. Swiftype - offre un piano gratuito per siti/blog personali.
  3. Algolia
  4. Amazon Cloud Search
Problemi correlati