21/12/11 16:29
Ilvince
salve a tutti ho un problema, ho fatto un motore di ricerca senza database che legge nelle cartelle i file e fa un controllo con la parola che sto cercando se il file e una cartella la apro e leggo i file al suo interno , la lettura delle sottocartelle funziona ma non mi effettua la ricerca e non capisco perchè
grazie a tutti per il vostro tempo ed il vostro aiuto
<?php $cerca=$_REQUEST['cerca']; //richiamo la parola che sto ricercando $dir=opendir('./'); //gli dico dove cercare le pagine(e quindi apro la cartella) //SE NON APRE LA CARTELLA SEGNALE L'ERRORE if(!$dir) { $err = error_get_last(); echo 'errore opnedir:'.$err['message']; } $no_exst = array(".js",".css",".xml",".jpg",".psd"); //estensioni di file da evitare while ($lettura = readdir($dir)) //qui leggo la cartella e metto in una variabile il file letto { if(is_dir($lettura))//se è una cartella entro { if(!(($lettura== "..") || ($lettura == "."))) //escludo le cartelle. e .. perche rislagono a quella corrente e ad un livello superiore { $letto=opendir($lettura); //apro la cartella while ( readdir($letto)) //leggo la sottocartella { if(is_dir($letto)== false) //se all'interrno della sottocartella c'è un'altra cartella la escludo { $file_array[] = $letto; //inserisco nell'array } } } } else { $file_array[] = $lettura; //inserisco nell array i file della cartella } } echo("risultati trovati per ".$cerca.":</br>"); echo("<TABLE align=\"center\">"); foreach ($file_array as $file) { ####################### //se il file inizia con .. o . lo tralascio if ( $file == ".." || $file == ".") { continue; } //carico tutta la pagina senza tag $contrfile=strip_tags(@file_get_contents($file)); //trasformo il contenuto in minuscolo $contrfile=strtolower($contrfile); //trasformo quello che sto cercando in minuscolo $cerca=strtolower($cerca); //controllo se nel file c'è la parola che stiamo cercando if(strstr($contrfile,$cerca)!=NULL) { $sd = explode(".", $file); //separiamo il nome del file $ultimo = end($sd); //distinguiamo le estensioni dal nome //controllo l'estensione se è segnata nella lista da non cercare if (!in_array(".".$ultimo, $no_exst)) { $e=substr(strrchr($file, "."), 0); // azzero l'estensione $a=" "; //sostituisco lo spazio vuoto con il relativo codice html $nome=ereg_replace($e, $a, $file); // sostituisco codice //carico la pagina con i tag $contrtitle=file_get_contents($file); //prelevo cio che è tra i tag title preg_match_all("(<title>(.*?)</title>)", $contrtitle , $risultato ); echo "<TR><TD>"; echo "<a href=\"$file\" title=\"$nome\" class=\"link1\"><font size=\"4\" face=\"arial\" >"; echo($risultato[1][0]); // stampo il risultato tra i tag title echo"</font></a> <br>"; //questo crea il link echo "<font size=\"2\" face=\"arial\" color=\"#41a62a\"> http://www.dominio.it/".$file."</font><br>"; //stampo dov'è il link $meta_tag =get_meta_tags($file);//prelevo tutti i meta-tag echo("<font size=\"3\" face=\"arial\">".$meta_tag["description"]."</font>");//stamo il meta-tag description echo("<br><br>"); } } } ?>
grazie a tutti per il vostro tempo ed il vostro aiuto
Ultima modifica effettuata da Ilvince 21/12/11 16:31
aaa