Pour faire une recherche sur le site de Dolfi, saisissez un mot ou une expression
dans la fenêtre ci-dessous (par exemple : internet)
en respectant la case et les accents.
 
",">",$txxt); $txxt=str_replace("à","à",$txxt); $txxt=str_replace("â","â",$txxt); $txxt=str_replace("ä","ä",$txxt); $txxt=str_replace("é","é",$txxt); $txxt=str_replace("è","è",$txxt); $txxt=str_replace("ê","ê",$txxt); $txxt=str_replace("ë","ë",$txxt); $txxt=str_replace("î","î",$txxt); $txxt=str_replace("ï","ï",$txxt); $txxt=str_replace("ô","ô",$txxt); $txxt=str_replace("ö","ö",$txxt); $txxt=str_replace("ù","ù",$txxt); $txxt=str_replace("û","û",$txxt); $txxt=str_replace("ü","ü",$txxt); $txxt=str_replace("ç","ç",$txxt); return $txxt; } //########################################################### // recupere dans un fichier le contnu entre les balises //########################################################### function rech_dans_fic($motif) { /////////////////////////////// //PARAMETRES COULEUR /////////////////////////////// $coulTexte="#8A3806"; $coulMotif="#000066"; $coulSimili="#8A3806"; $coulNumero="#009900"; $nb_rep=0; $found=false; $req="select * from search_ok"; $rez=mysql_query($req); if($rez!="") { for($idd=0;$idd"); $pos2=mon_instr($pos1+1,$txxt,"<"); if($pos2==false or $pos1==false) break; $candidat_txt=substr($txxt,$pos1+1,$pos2-$pos1-1); $ya_rien=true; if(substr($txxt,$pos2,4)==""); if($p1==false) { $mess_txt=$mess_txt.$candidat_txt; $i=$pos2+1; } else { $i=$p1+3; } } if(substr($txxt,$pos2,2)=="<"."?") { $ya_rien=false; $p1=mon_instr($pos2,$txxt,"?".">"); if($p1==false) { $mess_txt=$mess_txt.$candidat_txt; $i=$pos2+1; } else { $i=$p1+2; } } if($ya_rien) { $mess_txt=$mess_txt.$candidat_txt; $i=$pos2+1; } /* // here pas de comment $k1=mon_instr($i,$txxt,""); $i=$k2+1; } */ /* // test sur les parties que peuvent avoir des (cad PHP ou SCRIPT) // l'astuce est que les balises PHP et SCRIPT sont identifiables $veto_php=false; $veto_script=false; $k_php=mon_instr($pos1+1,$txxt,"?"); if($k_php) { $k=$k_php; $veto_php=true; if(substr($txxt,$k+1,1)!=">" and substr($txxt,$k-1,1)!="<") { $veto_php=false; } else { $i_php=mon_instr($pos1+1,$txxt,"? >")+2; } } $k_script=mon_instr($pos+1,$txxt,"--"); if($k_script) { $k=$k_script; $veto_script=true; if(substr($txxt,$k+1,1)!=">" and substr($txxt,$k-1,1)!="!") { $veto_script=false; } else { $i_script=mon_instr($pos1+1,$txxt,"-->")+3; } } if(!$veto_php and !$veto_script) { $mess_txt=$mess_txt.substr($txxt,$pos1+1,$pos2-$pos1-1); $i=$pos2+1; } else { $i=max($i_php,$i_script); } */ //echo "
POS1 = $pos1 ; POS2 = $pos2 ; I= $i ; K=$k
"; }while(mon_instr($i,$txxt,"<")!=false); //echo "[$fichier]

$mess_txt







"; /////////////////////////////////////// //recupere le titre de la page //////////////////////////////////////// $pos1=mon_instr(0,$txxt,""); $pos2=mon_instr(0,$txxt,""); if($pos1!=false and $pos2!=false) { $titre=substr($txxt,$pos1+strlen(""),$pos2-$pos1-strlen("<title>")); } else { $titre="Page sans titre explicite"; } /////////////////////////////////////////////// //cherche motif ds le txt et garde la phrase à //laquelle motif appartient /////////////////////////////////////////////// $i=0; $mess_txt_l=strtolower($mess_txt); $motif_l=strtolower($motif); if(mon_instr(0,$mess_txt_l,$motif_l)!=false) { do { while(true) { $pos1=mon_instr($i,$mess_txt_l,$motif_l); $tmp=substr($mess_txt_l,$pos1+strlen($motif_l),1); $tmp2=substr($mess_txt_l,$pos1-1,1); // echo "$tmp<br>"; if($pos1==false or (($tmp=="." or $tmp==" " or $tmp=="-" or $tmp=="!" or $tmp=="?" or $tmp==";" or $tmp=="," or $tmp==":" or $tmp==")" or $tmp=="(") and ( $tmp2=="." or $tmp2==" " or $tmp2=="-" or $tmp2=="!" or $tmp2=="?" or $tmp2==";" or $tmp2=="," or $tmp2==":" or $tmp2==")" or $tmp2=="("))) break; $i++; } if($pos1==false) break; $found=true; $nb_rep++; ////////////////////////////////////////////////////////// //Pos2 va en amont recherler la fin de la dernière phrase ///////////////////////////////////////////////////////// $pos2=max(strrpos(substr($mess_txt_l,0,$pos1+1),"."),strrpos(substr($mess_txt_l,0,$pos1+1),":"),strrpos(substr($mess_txt_l,0,$pos1+1),"!"),strrpos(substr($mess_txt_l,0,$pos1+1),"?"),strrpos(substr($mess_txt_l,0,$pos1+1),","),strrpos(substr($mess_txt_l,0,$pos1+1),")"),strrpos(substr($mess_txt_l,0,$pos1+1),"("),strrpos(substr($mess_txt_l,0,$pos1+1),"-")); ////////////////////////////////////////////////////////// // Pos3 donne la pos du caractère qui délimite la phrase à droite ///////////////////////////////////////////////////////// //$pos3=min(mon_instr($pos1+strlen($motif),$mess_txt_l,"."),mon_instr($pos1+strlen($motif),$mess_txt_l,":"),mon_instr($pos1+strlen($motif),$mess_txt_l,"!"),mon_instr($pos1+strlen($motif),$mess_txt_l,"?"),mon_instr($pos1+strlen($motif),$mess_txt_l,","),mon_instr($pos1+strlen($motif),$mess_txt_l,")"),mon_instr($pos1+strlen($motif),$mess_txt_l,"("),mon_instr($pos1+strlen($motif),$mess_txt_l,"-")); $nbp3=0; $kp3[0]=mon_instr($pos1+strlen($motif),$mess_txt_l,"."); $kp3[1]=mon_instr($pos1+strlen($motif),$mess_txt_l,":"); $kp3[2]=mon_instr($pos1+strlen($motif),$mess_txt_l,"!"); $kp3[3]=mon_instr($pos1+strlen($motif),$mess_txt_l,"?"); $kp3[4]=mon_instr($pos1+strlen($motif),$mess_txt_l,","); $kp3[5]=mon_instr($pos1+strlen($motif),$mess_txt_l,")"); $kp3[6]=mon_instr($pos1+strlen($motif),$mess_txt_l,"("); $kp3[7]=mon_instr($pos1+strlen($motif),$mess_txt_l,"-"); $kp3[8]=mon_instr($pos1+strlen($motif),$mess_txt_l,"#"); for($kiki=0;$kiki<9;$kiki++) { if($kp3[$kiki]==false) $kp3[$kiki]=1000000; } $pos3=min($kp3[0],$kp3[1],$kp3[2],$kp3[3],$kp3[4],$kp3[5],$kp3[6],$kp3[7],$kp3[8]); /* $pos3=mon_instr($pos1+strlen($motif),$mess_txt_l,"."); if($pos3==false) $pos3=mon_instr($pos1+strlen($motif),$mess_txt_l,":"); if($pos3==false) $pos3=mon_instr($pos1+strlen($motif),$mess_txt_l,"!"); if($pos3==false) $pos3=mon_instr($pos1+strlen($motif),$mess_txt_l,"?"); if($pos3==false) $pos3=mon_instr($pos1+strlen($motif),$mess_txt_l,","); if($pos3==false) $pos3=mon_instr($pos1+strlen($motif),$mess_txt_l,")"); if($pos3==false) $pos3=mon_instr($pos1+strlen($motif),$mess_txt_l,"("); if($pos3==false) $pos3=mon_instr($pos1+strlen($motif),$mess_txt_l,"-"); if($pos3==false) $pos3=mon_instr($pos1+strlen($motif),$mess_txt_l,";"); */ //////////////////////////////////////////////////////////////// // Creation de l'extrait: $ttt // <a href=lien_page> titre page </a> // txt txt txt MOTIF_en_$coulMotif txt txt '*motif*'_en_$coulSimili txt . /////////////////////////////////////////////////////////////// if($prev_titre!=$titre) { $le_lien="<a class='fondFF9900' href=".$fichier." target='_blank'>".$titre."</a><br>"; $ttt=""; $titre_diff=true; } else { $le_lien=""; $ttt=""; $titre_diff=false; } $prev_titre=$titre; //echo "[$prev_titre]-[$titre]"; $ttt=$ttt.substr($mess_txt,$pos2+1,$pos1-$pos2-1); ///////////////////////////////////////////////////////////// // pp1 la position du 1er motif valide dans la $ttt //////////////////////////////////////////////////////////// $pp1=strlen($ttt)+strlen("<font color='$coulMotif' size=2><b>")-1; $ttt=$ttt."<font color='$coulMotif' size=2><b>".substr($mess_txt,$pos1,strlen($motif))."</font></b>"; $ttt=$ttt.substr($mess_txt,$pos1+strlen($motif),$pos3-$pos1-strlen($motif)); $yyy=str_replace($motif,"<font color='$coulSimili' size=2><b>".$motif."</font></b>",substr($ttt,$pp1+strlen($motif_l),strlen($ttt)-$pp1-strlen($motif_l))); $ttt=substr($ttt,0,$pp1+strlen($motif_l)).$yyy; if($titre_diff) echo "<p align='left'><font face='Verdana, Arial, Helvetica, sans-serif' size=2 color='$coulTexte'><b>".$le_lien."</b></font><br>"; echo "<font face='Verdana, Arial, Helvetica, sans-serif' size=2 color='$coulNumero'><b>"; echo "<blockquote>"; echo $nb_rep.".</b></font>"; echo "<font face='Verdana, Arial, Helvetica, sans-serif' size=2 color='$coulTexte'>".$ttt."</font><br>"; //echo "<font face='Verdana, Arial, Helvetica, sans-serif' size=2 color='$coulURL'>".getenv($HTTP_SERVER)."/".$fichier."</font></p>"; echo "</blockquote>"; if($pos3==false) break; $i=$pos3+1; }while(mon_instr($i,$mess_txt_l,$motif_l)!=false); }// if mon_strpos } // end file exist } // end for } // end if rez if($found) { echo "<p align='center'><font face='Verdana, Arial, Helvetica, sans-serif' size=3 color='$coulTexte'><b>".$nb_rep." Résultat(s) trouvé(s).</b></font></p>"; } else { echo "<p align='center'><font face='Verdana, Arial, Helvetica, sans-serif' size=3 color='$coulTexte'><b> Aucun Résultat trouvé.</b></font></p>"; } return $mess_txt; } //############################################################ // strpos ameliore pr differencier la pos 0 et le FAUX //############################################################ function mon_strpos($chaine,$motif) { $c=strpos($chaine,$motif); if($c>0) return true; if($c==0) { if(substr($chaine,0,strlen($motif))==$motif) return true; else return false; } } //############################################################## //############################################################ // strpos amelioré pr rechercher à partir d'un bout chaine comme instr(en ASP) // $position 0 équivaut à 1er caratère //############################################################ function mon_instr($position,$chaine,$motif) { $chaine=substr($chaine,$position,strlen($chaine)-$position); $c=strpos($chaine,$motif); if($c>0) return $c+$position; if($c==0) { if(substr($chaine,0,strlen($motif))==$motif) return 0+$position; else return false; } } //############################################################## ?>