Analyseur de chaine (moteur de b.o.t)

Description

jai ecrit ce script a la base pour faire un BOT en Php
il fonctionne sur le principe de 'hit' c a d quil va analyser une chaine de caractere mot par mot et regarder dans sa base de donnee les occurences qui revienne, il contabilise (les hit) les lignes ayant le plus doccurences, en tire des 'scores' et renvois la reponse associé a la ligne 'gagnante'!!!

je sais pas si jme suis bien exprimé!

bref, ca marche parfaitement (en theorie) quand la base de donnee est correctement construite!

les appelles a la bases de donnee sont monstrueux, surtout que cest pas tres bien codé!
mais bon...

Source / Exemple :


<?
$text=chop($text);
$text=strtolower($text);
$table=explode(" ",$text);

//explose la requete et boucle chaque mot
while(list($key,$mot)=each($table))
{
 $table_bdd=mysql_query("select * from bot");
 while($info_bdd=mysql_fetch_array($table_bdd))
 {
   $sous_table_bdd=explode(" ",$info_bdd[clef]);

   //explose la clee de chaque ligne de la BDD
   while(list($key_bdd,$mot_bdd)=each($sous_table_bdd))
   {
     //verif de correspondance entre la clee stoké et la requete
     if($mot_bdd==$mot)
     {
      $comptage=$info_bdd[id];
      if(empty(${$comptage}))
      {
        ${$comptage}=1;
        //echo "init =>";
      }
      else
      {
        ${$comptage}++;
      }
      //echo "ID=$comptage // valeur=${$comptage} <br>";
     }
   }
 }
}
//fin de lanalyse,comptage des scores
$comptage_ret=0;
$table_bdd=mysql_query("select * from bot");
while($info_bdd=mysql_fetch_array($table_bdd))
{
 $comptage=$info_bdd[id];
 if(${$comptage}>$comptage_ret)
 {
  $scoremax=${$comptage};

 }
$comptage_ret=${$comptage};
}
//echo "score max:$scoremax<br>";

$table_bdd=mysql_query("select * from bot");
while($info_bdd=mysql_fetch_array($table_bdd))
{
 $comptage=$info_bdd[id];
 if(${$comptage}==$scoremax)
 {
   if(!isset($scoremax_table))
    $scoremax_table=array($comptage);
   else
    array_push($scoremax_table,$comptage);
 }
}
$nb_idmax=sizeof($scoremax_table);
//print_r($scoremax_table);
//echo "<br>nb ligne max: $nb_idmax";
//fin du comptage des scores des ID

//selection aleatoir de l'ID
srand((double)microtime()*1000000);
$id=rand(1,$nb_idmax);
$id--;
//echo "<br>id=$scoremax_table[$id]";

//prelevage de la replique associé a l'id
$table_bdd=mysql_query("select * from bot where id=$scoremax_table[$id]");
$info_bdd=mysql_fetch_array($table_bdd);
//echo "<br><b>$info_bdd[bot]</b>";
$retour=$info_bdd[bot];

?>

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.