Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 32

Discussione: Proggetto MdR giudizio

  1. #1

    Proggetto MdR giudizio

    Ho sempre pensato che fare un motore di ricerca fosse una cosa complicatissima e lunghissima(e non mi sono ricreduto),ma un bel giorno girovagando per il forum mi sono imbattuto in alcuni script in php che estraevano tutti i link contenuti in una pagina e anche tutti gli indirzzi delle immagini presenti in essa.

    Così lavorandoci un po' mi è venuta l'idea di creare un semplice script che fornitogli l'url di una main-page (ad es: http://www.html.it)risalisse a tutti i link presenti e li inserisse in un database con relative info(meta-tag,keywords,titolo,contenuto testuale...)poi ho fatto una semplice query di ricerca in sql ed ecco il motore di ricerca VVoVe:

    Possibile?

  2. #2
    ti sposto nell'altra sezione...

    cmq un motere di ricerca in genere è qualcosa di più di una semplice scatola.
    E anche se lo fosse necessiteresti di una gran macchina per indicizzare tutti i link anche solo di 1 sito così come hai detto tu.
    Larga è la foglia,stretta è la via...tu segui la tua che io seguo la mia...

  3. #3
    Grazie ero abbasta indeciso su dove postarlo

    Si difatti per l'indicizzazione di un sito sul dominio in hosting che ho ci ha messo un po' ed è risalito a solo un centinaio di pagine poi s'empallato però adesso sto tentando di farlo tramite il mio computer che dovrebbe resistere di più.

    Non ci credo molto in questo "giochetto" ma ormai che ciò provato tanto vale andare avanti

  4. #4
    sarebbe interessante magari per sviluppare un buon proprio motere di ricerca interno al sito, questa magari è una buona direzione
    Larga è la foglia,stretta è la via...tu segui la tua che io seguo la mia...

  5. #5
    Non so fare mdr sembra anche a me abbastanza irrealizzabile ma pensavo di usare lo script magari per una specie di directory di siti.

    (è inutile non ci riesco proprio a pensare in piccolo )

  6. #6
    infatti l'indicizzazione di un sito è facile.
    indicizziare il ueb diventa un pò più complicato

  7. #7
    mi potresti dire quel'è lo script o dove l'hai preso??
    thanks
    deste

  8. #8
    Dunque ho usato alcune funzioni trovate su php.net ed una classe trovata sul forum(http://www.devpro.it/code/38.html ) trovata su http://www.devpro.it/:

    Questa funzione (trovata su php.net) consente di estrarre il contenuto di un tag è può essere utile per risalire al titolo della pagina.

    Codice PHP:
    function TagContent($page,$tag,$endtag){
    // tags
    $start $tag;
    $end $endtag;
    // open the file
    $fp = @fopen$page'r' );
    $cont "";
    // read the contents
    while( !@feof$fp ) ) {
    $buf trim( @fgets$fp4096 ) );
    $cont .= $buf;
    }
    // get tag contents
    preg_match"/$start(.*)$end/s"$cont$match );
    // tag contents
    $contents $match]; 
    return 
    $contents;

    poi ho usato questa funzione fatta da me:

    Codice PHP:
    function GetSiteInfo($url){
    if(
    TagContent($url,"<title>","<\/title>") != ""){
    $title rtrim(TagContent($url,"<title>","<\/title>"));
    }else{
    $title rtrim(TagContent($url,"<TITLE>","<\/TITLE>"));}

    $meta_tags get_meta_tags($url);
    $page_code implode(file($url));
    $page_body_code $page_code;
    $page_text strip_tags($page_code);

    preg_match("/^(http:\/\/)?([^\/]+)/i",$url$matches);
    $NomeHost $matches[2];

    $Info['title'] = $title;
    $Info['meta-tag'] = $meta_tags;
    $Info['Host'] = $NomeHost;
    $Info['Page-Text'] = $page_text;
    $Info['Page-Code'] = $page_code;
    return 
    $Info;

    per ottenere un array con tutte le principali informazioni

    e questa per registrare le informazioni nel database

    Codice PHP:
    function InserPage($title,$url,$domain,$descr,$keys,$TextContent,$meta_tags,$chace_info,$cache){
    $link mysql_connect ("host","user,"pass");
    $sel = mysql_select_db ("dtabase",$link);

    $inser="INSERT INTO `Motore Ricerca Web` ( `Titolo` ,`Url` , `Dominio` , `Descrizione` , `keyword` , `Contenuti Testuali` , `meta-tags` , `Cache Info` , `Cache` ) ";
    $value="VALUES ('".htmlspecialchars($title)."''".$url."''".$domain."''".htmlentities($descr,ENT_QUOTES)."''".$keys."''".htmlentities($TextContent,ENT_QUOTES)."''".http_build_query($meta_tags)."''".$chace_info."''".htmlentities($cache,ENT_QUOTES)."');";
    $querys = $inser.$value;
    $risultato = mysql_query($querys);
    if(
    $risultato){return "Registred";}else{return "Error";}

    Ed ecco tutto il codice completo che uso:

    Codice PHP:
    //Creazione classe
    include("class.LinkExtractor.php");//Trovata sul forum di html.it non mi ricordo da chi
    $myLinks = &new LinkExtractor(); 

    //Acquisizione informazioni dell'indirizzo tramite l'apposita funzione
    $site_info GetSiteInfo($url);

    //Settaggio variabili contenenti Descrizione e Keywords
    $descrizione $site_info['meta-tag']['description'];
    $keyword $site_info['meta-tag']['keywords'];

    //Unset
    unset($site_info['meta-tag']['description']);
    unset(
    $site_info['meta-tag']['keywords']);

    //Chiamata alla funzione che inserisce la pagina nel database
    if (in_use($url) == false){
    print 
    $url." ".InserPage($site_info['title'],$url,$site_info['Host'],$descrizione,$keyword,$site_info['Page-Text'],$site_info['meta-tag'],"",$site_info['Page-Code'])."
    "
    ;
    }else{print 
    $url." Present
    "
    ;}

    //Estrazione dei link contenuti nella pagina
    if( $myLinks->parseUrl($url) == true ) {
    for( 
    $a 0$b count$PageLinks $myLinks->getLinks() ); $a $b$a++ ) {}
    }

    //Ciclo for per la scrittura delle main page nel database
    for($i=0;$i<count($PageLinks);$i++){
    //Formattazione dell'indirizzo per renderlo corretto
    if(substr(str_replace("./","/",$PageLinks[$i]),0,7) == "http://"){$pre "";}else{if(substr(str_replace("./","/",$PageLinks[$i]),0,1) == "/"){$pre $url;}else{$pre $url."/";};}
    $page_url $pre.str_replace("./","/",$PageLinks[$i]);
    //Acquisizione delle informazioni della pagina in un array
    $site_info GetSiteInfo($page_url);
    //Stampa dell'indirizzo
    $log_info $log_info $page_url;
    print 
    $page_url;

    //Controllo della presenza dell'indirizzo nel database
    if (in_use($page_url) == false){
    $descrizione $site_info['meta-tag']['description'];
    $keyword $site_info['meta-tag']['keywords'];

    unset(
    $site_info['meta-tag']['description']);
    unset(
    $site_info['meta-tag']['keywords']);
    //Stampa del risultato dell'operazione di inserimento
    $insert_result " ".InserPage($site_info['title'],$page_url,$site_info['Host'],$descrizione,$keyword,$site_info['Page-Text'],$site_info['meta-tag'],"",CreateCache($page_url))."
    "
    ;
    $log_info $log_info $insert_result;
    print 
    $insert_result;
    }else{print 
    " Present
    "
    ;}

    if(
    $subpage == 1){
     if( 
    $myLinks->parseUrl($page_url) == true ) {
      for( 
    $a 0$b count$PageSubLinks $myLinks->getLinks() ); $a $b$a++ ){
      if(
    substr(str_replace("./","/",$PageSubLinks[$a]),0,7) == "http://"){$pre "";}else{if(substr(str_replace("./","/",$PageSubLinks[$a]),0,1) == "/"){$pre $url;}else{$pre $url."/";};}
      
    $sub_page_url $pre.str_replace("./","/",$PageSubLinks[$a]); 
      
      
    $log_info $log_info "".$sub_page_url."
    "
    ;
      if (
    in_use($sub_page_url) == false){print "".$sub_page_url."
    "
    ;}
      }
     }
    }


    }


    ############### Funzioni ##########
    function http_build_query($formdata$numeric_prefix ""){
    $arr = array();
    foreach (
    $formdata as $key => $val)
    $arr[] = urlencode($numeric_prefix.$key)."=".urlencode($val);
    return 
    implode($arr"&");
    }

    function 
    InserPage($title,$url,$domain,$descr,$keys,$TextContent,$meta_tags,$chace_info,$cache){
    $link mysql_connect ("host","user","pass")
    $sel mysql_select_db ("database",$link);

    $inser="INSERT INTO `Motore Ricerca Web` ( `Titolo` ,`Url` , `Dominio` , `Descrizione` , `keyword` , `Contenuti Testuali` , `meta-tags` , `Cache Info` , `Cache` ) ";
    $value="VALUES ('".htmlspecialchars($title)."', '".$url."', '".$domain."', '".htmlentities($descr,ENT_QUOTES)."', '".$keys."', '".htmlentities($TextContent,ENT_QUOTES)."', '".http_build_query($meta_tags)."', '".$chace_info."', '".htmlentities($cache,ENT_QUOTES)."');";
    $querys $inser.$value;
    $risultato mysql_query($querys);
    if(
    $risultato){return "Registred";}else{return "Error";}
    }

    function 
    CreateCache($url){
    $url1 str_replace("http://","",$url);
    $url1 str_replace("/","()",$url1);
    $url1 str_replace("?","[]",$url1);
    $file_name "./cache/".$url1.".htm";

    $file_code file($url);
    $page_text implode($file_code);

    $fp fopen($file_name,"w+");
    $result fwrite($fp,$page_text);
    return 
    $url1;
    fclose($fp);
    }

    function 
    in_use($url){
    $link mysql_connect ("host","user","pass")
    $sel mysql_select_db ("database",$link);
    $querys "SELECT * FROM `Motore Ricerca Web`  WHERE `Url` = '".$url."'";
    $risultato mysql_query($querys);
    $risultato mysql_query($querys);
      if (!
    mysql_num_rows($risultato)){
      return 
    false;
      }else{
      return 
    true;
      }
    mysql_close();
    }


    function 
    GetSiteInfo($url){
    if(
    TagContent($url,"<title>","<\/title>") != ""){
    $title rtrim(TagContent($url,"<title>","<\/title>"));
    }else{
    $title rtrim(TagContent($url,"<TITLE>","<\/TITLE>"));}

    $meta_tags get_meta_tags($url);
    $page_code implode(file($url));
    $page_body_code $page_code;
    $page_text strip_tags($page_code);

    preg_match("/^(http:\/\/)?([^\/]+)/i",$url$matches);
    $NomeHost $matches[2];

    $Info['title'] = $title;
    $Info['meta-tag'] = $meta_tags;
    $Info['Host'] = $NomeHost;
    $Info['Page-Text'] = $page_text;
    $Info['Page-Code'] = $page_code;
    return 
    $Info;
    }


    function 
    TagContent($page,$tag,$endtag){
    // tags
    $start $tag;
    $end $endtag;
    // open the file
    $fp = @fopen$page'r' );
    $cont "";
    // read the contents
    while( !@feof$fp ) ) {
    $buf trim( @fgets$fp4096 ) );
    $cont .= $buf;
    }
    // get tag contents
    preg_match"/$start(.*)$end/s"$cont$match );
    // tag contents
    $contents $match]; 
    return 
    $contents;


  9. #9
    w il forum php

  10. #10
    non sono molto pratico con il PHP...ma basta lanciare la pagina che fa tutto lui giusto???
    si appoggia a qualche database??
    scusate l'ignoranza

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.