Accès au manager - réservé aux membres

Navigation

Bouts de Codes PHP

Générateur de Nuage de Mots

Informations sur le code source PHP

Ecrit par :  KOogar
Site de l'auteur Voir
Autres codes en PHP de l'auteur : [51] sources Voir
Date d'enregistrement du code le 19 Mars 2008 - Vu 2539 fois
Code source zippé: Télécharger le fichier ZIP
Impression: Imprimer le code
Ajouter la page à vos favoris

Description du code source

Informations sur le code source

Voici un générateur de Nuage de Mots, c'est le même générateur qui est utiliser pour tout les différents Nuage de Mots de ce site. 1 fois par jour le générateur est lancé automatiquement par tache Cron interne et le générateur remet à jour tous les Nuage de Mots de ce site.
Ce générateur est pertinent pour le référencement puisqu'il permet de générer un Nuage de Mots en fonction du contenu de votre base de donnée MySQL.
C'est un générateur, donc il génére un code indépendement de votre site!! Vous pouvez passer 10Mo de datas au peigne fin pour générer un Nuage de Mots pertinent. Au final vous aurez une ligne de code à placer dans votre script:

Intallation:
1° Création d'un fichier tag_clouds.txt avec droits ouvert en écriture sur ce fichier
2° CONNECTION : Remplissez vos logs MySQL
3° ASPIRER VOS DATAS: Connecter une de vos tables pour remplir la variable $texte avec vos datas
4° Lancez le script !!
5° Ajustement avec la CONFIGURATION et les STOP WORD ;)

Code Source



.01
.02
.03
.04
.05
.06
.07
.08
.09
.10
.11
.12
.13
.14
.15
.16
.17
.18
.19
.20
.21
.22
.23
.24
.25
.26
.27
.28
.29
.30
.31
.32
.33
.34
.35
.36
.37
.38
.39
.40
.41
.42
.43
.44
.45
.46
.47
.48
.49
.50
.51
.52
.53
.54
.55
.56
.57
.58
.59
.60
.61
.62
.63
.64
.65
.66
.67
.68
.69
.70
.71
.72
.73
.74
.75
.76
.77
.78
.79
.80
.81
.82
.83
.84
.85
.86
.87
.88
.89
.90
.91
.92
.93
.94
.95
.96
.97
.98
.99
.100
.101
.102
.103
.104
.105
.106
.107
.108
.109
.110
.111
.112
.113
.114
.115
.116
.117
.118
.119
.120
.121
.122
.123
.124
.125
.126
.127
.128
.129
.130
.131
.132
.133
.134
.135
.136
.137
.138
.139
.140
.141
.142
.143
.144
.145
.146
.147
.148
.149
.150
.151
.152
.153
.154
.155
.156
.157
.158
.159
.160
.161
.162
.163
.164
.165
.166
.167
.168
.169
.170
.171
.172
.173
.174
.175
.176
.177
.178
.179
.180
.181
.182
.183
.184
.185
.186
.187
.188
.189
.190
.191
.192
.193
.194
.195
.196
.197
.198
.199
.200
.201
.202
.203
.204
.205
.206
.207
.208
.209
.210
.211
.212
.213
.214
.215
.216
.217
.218
.219
.220
.221
.222
.223
.224
.225
.226
.227
.228
.229
.230
.231
.232
.233
.234
.235
.236
.237
.238
.239
.240
.241
.242
.243
.244
.245
.246
.247
.248
.249
.250
.251
.252
.253
.254
.255
.256
.257
.258
.259
.260
.261
.262
.263
.264
.265
.266
.267
.268
.269
.270
.271
.272
.273
.274
.275
.276
.277
.278
.279
.280
.281
.282
.283
.284
.285
.286
.287
.288
.289
.290
.291
.292
.293
.294
.295
.296
.297
.298
.299
.300
.301
.302
.303
.304
.305
.306
.307
.308
.309
.310
.311
.312
.313
.314
.315
.316
.317
.318
.319
.320
.321
.322
.323
.324
.325
.326
.327
.328
.329
.330
 

<?php
/******************************************************************************/
/*                                                                            */
/*                       __        ____                                       */
/*                 ___  / /  ___  / __/__  __ _____________ ___               */
/*                / _ \/ _ \/ _ \_\ \/ _ \/ // / __/ __/ -_|_-<               */
/*               / .__/_//_/ .__/___/\___/\_,_/_/  \__/\__/___/               */
/*              /_/       /_/                                                 */
/*                                                                            */
/*                                                                            */
/******************************************************************************/
/*                                                                            */
/* Titre          : Générateur de Nuage de Mots                               */
/*                                                                            */
/* URL            : http://www.phpsources.org/scripts360-PHP.htm              */
/* Auteur         : KOogar                                                    */
/* Date édition   : 19 Mars 2008                                              */
/* Website auteur : http://www.phpsources.org                                 */
/*                                                                            */
/******************************************************************************/



/********************************/
/*    CONNECTION                */
/*******************************************************************************
    *  Remplissez avec vos logs de connection
    ***************************************************************************/


$mabasededonnee="";
 
$db mysql_connect("localhost","root","");
// test la connection
if ( ! $db )
  die ("connection impossible");
  // Connecte la base
  mysql_select_db($mabasededonnee) or die ("pas de connection");    

/********************************/
/*    ASPIRER VOS DATAS         */
/*******************************************************************************
    *  Remplissez correctement le nom de votre table pour le nom du champ
    ***************************************************************************/

      $result mysql_query("SELECT champ FROM table");
      while ($row mysql_fetch_array($result)) {
       $texte .= $row['champ'];
      }

/********************************/
/*    CONFIGURATION             */
/*******************************************************************************
    *  2 templates differents
    *  commenter le premier et decommenté le second pour utilisation
    ***************************************************************************/

      /*
      $taille_des_mots = 6; // taille des mots en nombre de lettre

      //  NE PAS TOUCHER
      $x = 3; $y = 12;
      $nbre_elements = 36;  // nombre d'elements
      $nbcol_tableau = 2;  //détermine le nombre de colonnes
      */

      $taille_des_mots 8// taille des mots en nombre de lettre
      $option 0;
      // NE PAS TOUCHER
      $x 3$y 6;
      $nbre_elements 18;  // nombre d'elements
      $nbcol_tableau 1;  //détermine le nombre de colonnes



/********************************/
/*    CSS                       */
/*******************************************************************************
    *  3 classes et pas 1 de plus !!
    *  Vous pouvez modifier le contenu des classes
    ***************************************************************************/

?> 
<style type="text/css">
a.cloud1 { font-family:Verdana; font-size:24px;text-decoration: none;}
a.cloud1:hover { font-family:Verdana; font-size:22px;text-decoration:underline; }
a.cloud2 { font-family:Verdana; font-size:16px;text-decoration: none;}
a.cloud2:hover { font-family:Verdana; font-size:14px;text-decoration:underline; }
a.cloud3 { font-family:Verdana; font-size:12px;text-decoration: none;}
a.cloud3:hover { font-family:Verdana; font-size:10px;text-decoration:underline; }
</style> <?


/********************************/
/*    TEMPS D'EXECUTION         */
/*******************************************************************************
    * Mise a zero du calcul du temps d'execution du script
    ***************************************************************************/

$mtime microtime();
$mtime explode(" ",$mtime);
$mtime $mtime[1] + $mtime[0];
$starttime $mtime;

set_time_limit(0);


/********************************/
/*    STOP WORD                 */
/*******************************************************************************
    *  C'est ici que vous mettez les mots que vous ne voulez pas !
    ***************************************************************************/
$tab_banni =
array(
"mais","ou","et","donc","or","ni","car",
"je","il","lui","ils","elle","elles","nous","vous",
"vos","votre","mes","mien","mien","tien","tiens",
"tout","toute","toutes",
"a","b","c","d","e","f","g","h","i","j","l","m","n","o","p","q",
"r","s","t","u","v","w","x","y","z",
"le","la","les","nos",
"alors","au","aucuns","aussi","autre","avant","avec","avoir","bon","car","ce",
"cela","ces","ceux","chaque","ci","comme","comment","dans","des","du","dedans",
"dehors","depuis","deux","devrait","doit","donc","dos","droite","début","elle",
"elles","en","encore","essai","est","et","eu","fait","faites","fois","font",
"force","haut","hors","ici","il","ils","je juste","la","le","les","leur","là",
"ma","maintenant","mais","mes","mine","moins","mon","mot","même","ni","nommés",
"notre","nous","nouveaux","ou","où","par","parce","parole","pas","personnes",
"peut","peu","pièce","plupart","pour","pourquoi","quand","que","quel","quelle",
"quelles","quels","qui","sa","sans","ses","seulement","si","sien","son",
"sont","sous","soyez sujet","sur","ta","tandis","tellement","tels","tes","ton",
"tous","tout","trop","très","tu","valeur","voie","voient","vont","votre","vous",
"vu","ça","étaient","état","étions","été","être",
"un","deux","trois","quatre","cinq","six","sept","huit","neuf","dix",
"0","1","2","3","4","5","6","7","8","9","10",
"avec","chez","par","dans","des","en","de","une","votre","meilleurs","entre",
"entres","depuis","alors","ne","pas","du","meme",
"ou","nom","seuls","acceptes","ayant",
"vos","votre","mes","mien","mien","tien","tiens","tout","toute","toutes",
"que","quoi","qui","comment","peu","peut","pis","puis","pas",
"chaque","chacun","chacune",
"son","ses","au","aux","se","sur","ce","ceux","cette","ca","ci","ceci","cela",
"aussi","pour","petit","grand","moyen","large","haut","bas","milieu","droite",
"gauche","centre","dit","etre","leur","leurs","plus","moin","moins",
"es","est","sont","son","va","suis","ai","viens"
                   );
/*******************************************************************************
    *  Fonction enleve les slashs
    *  Enleve les accents
    ***************************************************************************/

function AuStripSlashes($chaine) {
    return(get_magic_quotes_gpc() == StripSlashes($chaine) : $chaine);}

function TexteSansAccent($texte){
$accent='ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËéèêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ';
$noaccent='AAAAAAaaaaaaOOOOOOooooooEEEEeeeeCcIIIIiiiiUUUUuuuuyNn'$texte strtr($texte,$accent,$noaccent); 
return $texte; }

/*******************************************************************************
    *  gestion de la chaine et placement de la chaine dans une table
    ***************************************************************************/

// enleve les slashs
$texte AuStripSlashes($texte);
// enleve les accent
$texte TexteSansAccent($texte);// enleve les accent
// enleve les apostrophes
$texte str_replace("'"," ",$texte);
// passe le texte en minuscule
$texte strtolower($texte); // passe minuscule
// Place tous les mots d'une chaine dans un tableau
$regs1 split("[^[:alpha:]]+"$texte);
$tab_copie $regs1// copie de la table

/*******************************************************************************
    *  gestion du tableau
    ***************************************************************************/

// enleve les mots bannis en faisant le difference des 2 tableaux
$regs array_diff($regs1,$tab_banni);
// On groupe les Mots-clés identiques et on les compte
$stats array_count_values($regs);
// On trie par ordre croissant la liste
array_multisort($statsSORT_DESC);
// On crée un tableau avec les clés du tableau correpondants aux mots clés
$tabKey array_keys($stats);

/********************************/
/*    CREATION TABLEAU          */
/*******************************************************************************
    *  Création du tableau contenant les resultats
    ***************************************************************************/

      $i=0;
      $compteur 0;
      while ( $i sizeof($tabKey))

      {
      $champ $tabKey[$i];
      $taille  strlen($champ);
      if ($taille <= $taille_des_mots) {
      $tag[$compteur] = $tabKey[$i];
      $compteur++;
       }
        $i++;
       if ($compteur==($nbre_elements+1)) break;
      }

/********************************/
/*    CREATION DU TAGS CLOUD    */
/*******************************************************************************
    *  3 tableaux pour faire un aléatoire sur chacun
    ***************************************************************************/



// PREMIERE PARTIE

$i=0;
$temp1 = -1;
$temp2 0;
$temp3 0;

while ($i<sizeof($tag))
    {
 if ($i <= $y) {
 if ($option) {$nb = ($temp1++ & 1) ? '3' '1';} else {$temp1++; $nb=1;}
$tab_1[$temp1]='<a class="cloud'.$nb.'" href="file.php?w='.$tag[$i].'">'.$tag[$i].'</a> ';
 }

 if ($i $y and $i <= ($y*2)) {
 $tab_2[$temp2] = '<a class="cloud2" href="file.php?w='.$tag[$i].'">'.$tag[$i].'</a> ';
 $temp2++;
 }
 if ($i > ($y*2) ) {
 $tab_3[$temp3] = '<a class="cloud3" href="file.php?w='.$tag[$i].'">'.$tag[$i].'</a> ';
 $temp3++;
 }

$i++;
}

$i=0;
while ($i<$y)
    {
    $tchaine = array();
    $new_chaine '';
    $tchaine[] = $tab_1[$i];
    $tchaine[] = $tab_2[$i];
    $tchaine[] = $tab_3[$i];
    srand((float)microtime()*1000000);
    shuffle($tchaine);
     $j=0;
    while ($j<sizeof($tchaine)) { $new_chaine .= $tchaine[$j]; $j++; }
    $tab_final[] = $new_chaine;
    $i++;
    }

/**************************************/
/*    CREATION FINAL DU TAGS CLOUD    */
/*******************************************************************************
    *  c'est ici que vous pouvez ajuster l'affichage du tag cloud
    ***************************************************************************/

$i=0;
 $tag_clouds  '<table style="width:240px;border: 1px dotted #999;margin:2px;">';
 while ($i<sizeof($tab_final))
    {
    if($i%$nbcol_tableau==0)
    $tag_clouds  .= '<tr><td colspan="'.$nbcol_tableau.'">';
    $tag_clouds  .= ''.$tab_final[$i].'';

  if($i%$nbcol_tableau==($nbcol_tableau-1)) 
  $tag_clouds  .= "</td></tr>";
  $i++;
  }
  $tag_clouds  .= "</table>";

/********************************/
/*    CONNECTION FICHIER        */
/*******************************************************************************
    *  Ouverture du fichier et insertion du tag cloud
    ***************************************************************************/

$f 'tag_clouds.txt';
$handle fopen($f,"w+");

// regarde si le fichier est accessible en écriture 
if (is_writable($f)) { 
// Ecriture 
    if (fwrite($handle$tag_clouds) === FALSE) {
      echo 'Impossible d\'écrire dans le fichier '.$f.''; 
      exit; 
    } 
    fclose($handle);
                    
    }
    else { echo 'Impossible d\'écrire dans le fichier '.$f.'';
    } 

/********************************/
/*    TEMPS D'EXECUTION         */
/*******************************************************************************
    * Calcul et affichage du temps d'execution du script
    ***************************************************************************/

   $mtime microtime();
   $mtime explode(" ",$mtime);
   $mtime $mtime[1] + $mtime[0];
   $endtime $mtime;
   $totaltime = ($endtime $starttime);
   echo'<br /><br />';
   echo '<font style="font-size:11px;font-family:Verdana;color:#111111; ">';
   echo 'Tag Cloud généré en ',number_format($totaltime,4,',',''),' s</font>';
   echo '</td></tr></table>';
   echo'<br /><br />';


/***********************************/
/*    AFFICHAGE LE NUAGE DE TAG ;) */
/**********************************************