Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1

    motore di ricerca nel DB e nei file

    Ciao a tutti,
    con questo script eseguo la ricerca nel DB e visualizzo gli articoli.
    Adesso vorrei fare la stessa cosa anche in file con estensione php o html.
    (esempio se ho una pagina php nel cui interno c'è scritta la parola Dante, e nel DB un articolo con la stessa parola vorrei che il motore di ricerca mi visualizzasse sia l'articolo che la pagina php)

    Spero di essere stato chiaro. ?

    Codice PHP:
    <?
    include("../include/top_foot.inc.php");
    include(
    "config.inc.php");
    top();
    $db mysql_connect($db_host$db_user$db_password);
    if (
    $db == FALSE)
    die (
    "Errore nella connessione. Verificare i parametri nel file config.inc.php");
    mysql_select_db($db_name$db)
    or die (
    "Errore nella selezione del database. Verificare i parametri nel file config.inc.php");

    $keys explode (","$_POST['chiave']);
    $termine $_POST['chiave'];

    foreach (
    $keys as $parola)
    {
      
    $parola trim($parola);
      if (
    $parola != ""
    $query .= "Titolo LIKE '%$parola%' OR Testo LIKE '%$parola%' OR name LIKE '%$parola%' OR "
    }
    $query .= "0";
    $query "SELECT ID, Titolo, Testo, name, surname, DATE_FORMAT(Data,'%d.%m.%Y') as data_art FROM articoli WHERE " $query;
    $result mysql_query($query$db);
    echo 
    "Chiave di ricerca: [b] $termine [/b]
    "
    ;
    $valori mysql_num_rows($result);
    echo 
    "Trovati [b]$valori[/b] risultati

    "
    ;

    while (
    $row mysql_fetch_object($result))
    {
    $termine =strtolower($termine);
    $ricerca=$termine;
    $ricerca=strtolower($ricerca);

    $Testo $row->Testo;
    //$ricerca=strtoupper($ricerca);
    $Testo=eregi_replace($ricerca,"<font color=RED>[B]".$ricerca."[/B]</font>",$Testo);
    $name $row->name;
    $name=eregi_replace($ricerca,"[B]".$ricerca."[/B]",$name);
    $surname $row->surname;
    $surname=eregi_replace($ricerca,"[B]".$ricerca."[/B]",$surname);
    $data_art $row->data_art;
    $Titolo$row->Titolo;
    $Titolo=eregi_replace($ricerca,"<font color=#FF0000>[B]".$ricerca."[/B]</font>",$Titolo);

    //$Testo = $row->Testo;
    echo "<a href=\"view.php?id=$row[ID]\">" "$data_art - " "$name " "$surname
    " - $Titolo</a>
    "
    "$Testo"."

    "

    }
    foot();
    ?>

  2. #2
    dovresti aprire il file con fopen(..,..); e leggere il contenuto del file e vedere se c'è corrispondenza con la parola cercata

  3. #3
    avevo pensato che ci voleva fopen ma non so dove e come inserirlo nel mio script

  4. #4
    il discorso e' che nel tuo script non fai nessun riferimento ai files

  5. #5
    infatti.
    questo script (che non è farina del mio sacco) effettua la ricerca solo nel DB, mentre io vorrei effettuare la ricerca sia nel DB che nei file.

  6. #6
    devi aggiungere un campo file alla tabella e fare fopen li

  7. #7
    puoi essere così cortese e farmi almeno qualche esempio

    grazie

  8. #8
    devi aggiungere un nuovo campo alla tabella e questo lo devi fare tu.
    Per il codice posso darti del codice che cerca una parola in un file:

    <?php
    $word=$_POST['word'];
    $file=$_POST['file'];
    echo"<center>risultati della ricerca per:$word

    ";
    echo"<center><table width=600><tr><td>";

    ricerca($file,$word);

    //funzione che cerca nel file
    function ricerca($link,$word)
    {
    $pieces = explode(".", $link); //prende l'estensione
    if($pieces[1]=="htm" || $pieces[1]=="html" || $pieces[1]=="txt") //se corrisponde con 'html' 'htm' 'txt' esegue la ricerca
    {
    $url=$link; //pagina in cui fare la ricerca
    $parola_da_cercare=addslashes(stripslashes($word)) ; //parola da cercare

    $primo=array();

    $a=0;
    $content=array("cont");
    $b=filesize("$link");
    $fp=fopen("$link",'r')or die("impossible aprire il file");
    while(!feof($fp))
    {
    $chunk=fgetc($fp);
    $content[]=$chunk;
    $a++;
    }
    $word="";
    echo htmlspecialchars($nome);
    for($i=1;$i<=$a;$i++)
    {
    $word=$word.$content[$i];
    }
    $word = strip_tags($word); /* Try to remove all HTML-tags: */
    fclose($fp);

    array_push($primo,$word); //inserisce la descrizione nell'array

    $n=0;

    foreach ($primo as $temp)
    {
    if (ereg($parola_da_cercare, $temp, $reg)) //cerca la parola da cercare nel campo del database
    {
    $n++; //indice per tenere conto dei risultati
    $temp=ereg_replace($parola_da_cercare,"<span style=\"background-color: #FFFF00\">".$parola_da_cercare."</span>",$temp); //mette in grassetto la parola da ricercare tra i risultati
    print $temp."
    ";
    echo"<a href=\"$link\">vedi</a>
    ";
    echo"$link

    ";
    }
    }
    }
    }

    echo"</td></tr></table>";
    ?>

  9. #9
    grazie,
    faccio delle prove e ti faccio sapere.

  10. #10

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.