|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
LES MOTS CLEFS DE TOUT TEXTE À PLACER SUR UN SITE INTERNET
Information sur la source
Description
Pour un bon référencement il faut déterminer les MOTS-CLEFS de toute les pages. Ceci permet de décrypter tout fichier et de sortir les mots répétés dans le texte. C'est souvent les mots clefs qui sont les plus répétés. Pas toujours, mais ceci n'est qu'une aide, bien sûr !
J'ai tout refait ... et j'ai un peu peur des remarques !
mais bon, je suis hospitalisé du 5 au 12 novembre donc au retour vous serez plus calmes !
Je vous remercie par avance de vos remarques.
Je n'ai pas utilisé de RegEx ni de snippets car je ne maîtrise pas ;-((
Je me sers de MySql maintenant - et je ne traite que des fichiers [b].txt non formatés [/b]
Source
- La table à créer ( avec WAMP c'est facile !)
-
- TABLE 'mots_clef'
- ID_motclef,int(11),NonNull,auto_increment,Primaire,Unique,Index
- MOT,varchar(255),latin1_swedish_ci,NonNull,Unique,Index
- NBCAR,int(11),NonNull,Index
- NBOC,int(11),NonNull,Index
-
- un fichier en HTML de lancement :
- <html>
- <body>
- <div align="center">
- Nom : <input type="file" size="75" /><br />
- <form method="POST" action="mot_clef.php">
- Copier-coller ici : <br />
- <input type="text" name="fichier" size="75"><br />
- Taille minimale des mots sélectionnés (par défaut 6): <input type="text" name="nb_car" value="6" size="25"><br />
- Nombre minimal d'occurences pour les mots sélectionnés (par défaut 3): <input type="text" name="nb_oc" value="3" size="25"><br />
- <input type="submit" value=" si vous êtes prêt ">
- </form>
- </div>
- </body>
- </html>
-
- qui renvoie vers le fichier mot_clef.php ci dessous
- <?php
- if (empty($_POST['fichier']))// la valeur ne doit Ûtre ni nulle ni vide ni zÚro
- {
- echo "Veuillez indiquer le nom du fichier àe; analyser <br /> Merci !";
- include ('mot_clef.htm');
- exit();
- }
- $alire=mysql_real_escape_string(htmlspecialchars($_POST['fichier']));
- $type=substr((strrchr($alire,'.')),1);// type du fichier
- if ($type<>'txt')
- {
- echo "<div align='center'><h1>J'ai prévenu !! Ici on ne traite <strong>BIEN </strong> que les fichiers de type <strong> .TXT </strong></h1></div><HR />";
-
- }
- if (!file_exists($alire))// la valeur ne doit Ûtre ni nulle ni vide ni zÚro
- {
- echo "<h1>Veuillez indiquer un nom du fichier qui existe réellement ! <br /> Merci !</h1>";
- include ('mot_clef.htm');
- exit();
- }
- if (isset($_POST['nb_car']))
- {
- $nbcar = $_POST['nb_car'];
- }
- else
- {
- $nbcar =5;
- }
- if (isset($_POST['nb_oc']))
- {
- $nbocd = $_POST['nb_oc'];
- }
- else
- {
- $nbocd = 2;
- }
- // *************************on peut analyser ***************************
- // echo $alire; // uniquement pour débuggage éventuel
- // ****************************
- $handle = fopen($alire, "rb");
- $text = stream_get_contents($handle); // on lit tout le fichier
- fclose($handle);
- //Petit nettoyage, pas si petit finalement ! La VACHE !!!
- $text = strip_tags($text);
- $text = htmlentities($text); // pour enlever le formatage HTML
- $text = trim($text); // enleve débuts et fin de chaîne
- $text = strtolower($text); // passe tout en minuscules
- $text = strtr($text,"ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûýýþÿ","AAAAAAACEEEEIIIIDNOOOOOOUUUUYbsaaaaaaaceeeeiiiidnoooooouuuyyby"); // on enleve les accents
- // les trucs de formatages
- $text = str_replace("é","e",$text);
- $text = str_replace("è","e",$text);
- $text = str_replace("à","a",$text);
- $text = str_replace("ù","u",$text);
- $text = str_replace("â","a",$text);
- $text = str_replace("ô","o",$text);
- $text = str_replace("ê","e",$text);
- $text = str_replace("û","u",$text);
- $text = str_replace("î","i",$text);
- $text = str_replace(" "," ",$text);
- $text = str_replace(" "," ",$text);
- $text = str_replace(" "," ",$text);
- $text = str_replace(" "," ",$text);
- $text = str_replace("é ","e",$text);
- $text = str_replace("mé ","me",$text);
- $text = str_replace("""," ",$text);
- $text = str_replace(">"," ",$text);
- $text = str_replace("\par"," ",$text);
- $text = str_replace(">"," ",$text);
- $text = str_replace("<"," ",$text);
- $text = str_replace("ç"," ",$text);
- $text = str_replace(" "," ",$text);
- $text = str_replace(" "," ",$text);
- $text = str_replace(" "," ",$text);
- $text = str_replace(" "," ",$text);
-
- // encore d'autres !
- $text = str_replace("9c","oe",$text);
- $text = str_replace("e8","e",$text);
- $text = str_replace("e9","e",$text);
- $text = str_replace("{"," ",$text);
- $text = str_replace("}"," ",$text);
- $text = str_replace("\ e","e",$text);
- $text = str_replace(" \\"," ",$text);
- $text = str_replace("\b"," ",$text);
- $text = str_replace("/b"," ",$text);
- $text = str_replace("("," ",$text);
- $text = str_replace(")"," ",$text);
- $text = str_replace("/n"," ",$text);
- $text = str_replace(array(",","-",".","_","[","]",":",";","'",'"')," ",$text);
- // ******************
- // echo $text.'<hr>'; // uniquement pour contrôle de fonctionnement du prgm !
- //Decomposition mot à mot
- $mots = preg_split("/[\s,]+/", $text);
- //Boucle d'analyse de chaques mots
- $nbmots = count($mots);
- // ***************************************************************
- // ** on prépare l'ouverture tout de suite de la table de repèrage des mots ****
- require('connect-BDD-txt.php');
- include ('vider_table-motclef.php'); // pour avoir une base propre
- // analyse de chaque mot l'un après l'autre
- $t=0;
- for ($t=0;$nbmots>$t;$t++)
- {
- $etud=$mots[$t];
- if (strlen($etud)>$nbcar)
- {
- $req=@mysql_query("SELECT * FROM coursphp.mots_clef");
- $WHI=0;
- While($res=@mysql_fetch_array($req))
- {
- if ($res['MOT']===$etud)
- {
- // *** si OUI, on rajoute une occurence ****************
- $n=$res['NBOC'];// on sélectionne le nombre d'enregistrements enregistrés
- $n=$n+1;
- $sql = "UPDATE `coursphp`.`mots_clef` SET NBOC = '$n' WHERE `MOT` = '$etud'";
- $req = @mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
- $WHI=14;
- }
- // ****ci-dessous ******** fin de la boucle While !!! ***********
- }
- // le mot étudié est toujours OK mais n'existait pas dans la table
- if ($WHI!=14) // si le mot n'a pas été trouvé
- {
- // *** on rajoute donc ce mot dans la table *********
- $n=1;
- $h=strlen($etud);
- $sql = "INSERT INTO `coursphp`.`mots_clef` (ID_motclef ,MOT ,NBCAR ,NBOC) VALUES ('', '$etud', '$h', '$n')";
- $ret = @mysql_query($sql) or die ('<br>Plantation rajout ici : '.mysql_error());
- }
- }
- }
- include ('aff_result-motclef.php');
- // ***************** F I N ********************************************
- ?>
- sur la dernière ligne on voit l'enchaînement vers aff_result-motclef.php que voici ci-dessous :
-
- <?php
- include('connect-BDD-txt.php');
- // ************************ affichage du résultat **************
- echo '<h3>Vous avez choisi de regarder les mots de '.$nbcar.' lettres et plus qui apparaissent '.$nbocd.' fois au moins dans le texte : </h3>';
- echo '<strong><div align="center">'.mb_strtoupper($alire).'</strong> <br />donc fichier de type : '.$type.'<hr /></div>';
- echo '<strong>Nombre de caractères utilisés : </strong>'.(strlen($text)).'<br />';
- echo '<hr />';
- echo '<strong>Nombre de mots utilisés : </strong>'.$nbmots.'<br />';
- echo '<hr />';
- echo '<TABLE BORDER="1">
- <CAPTION><h1>liste des mots<br>enregistrés : </h1></CAPTION>
- <TR><TH>MOT</TH><TH>Nombre de<br>caractères</TH><TH>Nombre des<br>occurences<br>dans le texte</TH></TR>';
- $sql="SELECT * FROM `mots_clef` WHERE NBOC >$nbocd ORDER BY -NBOC,MOT";
- $ret = mysql_query($sql) or die ("Planté ! voyez pourquoi ici : ".mysql_error());
- WHILE ( $col = mysql_fetch_row($ret) )
- {
- echo '</TH><TH>'.$col[1].'</TH><TH>'.$col[2].'</TH><TH>'.$col[3].'</TH></TR>';
- $a++;
- $keywords=$col[1].','.$keywords;
- }
- echo $keywords.'beau travail';
- echo '</TABLE>';
- // ****** fin de tableau ****************
- include ('fic_keywords.php');
- include('date-actuelle.php');
- echo '<strong>Jacques DUSSIN ~ 2008</strong>';
- ?>
-
- le fichier fic-keywords.php va être modifier pour que les informations soient enregistrés dans une autre base dans laquelle figure le fichier formaté pour le WEB. Cette autre base servira à la création de page dynamiquement, en direct suite à un clic d'un internauite sur un lien dans mon site GHU !
- je le mets dans l'état actuel :
-
- <?php
- $Fnm = 'les_keywords.txt';
- $inF = fopen($Fnm,"a");
- echo $alire.' est le fichier';
- echo $keywords.' sont les mots clefs !';
- $enreg=$alire.' '.$keywords.'jacques dussin';
- fwrite($inF,$enreg."\n");
- fclose($inF);
- ?>
-
-
-
La table à créer ( avec WAMP c'est facile !)
TABLE 'mots_clef'
ID_motclef,int(11),NonNull,auto_increment,Primaire,Unique,Index
MOT,varchar(255),latin1_swedish_ci,NonNull,Unique,Index
NBCAR,int(11),NonNull,Index
NBOC,int(11),NonNull,Index
un fichier en HTML de lancement :
<html>
<body>
<div align="center">
Nom : <input type="file" size="75" /><br />
<form method="POST" action="mot_clef.php">
Copier-coller ici : <br />
<input type="text" name="fichier" size="75"><br />
Taille minimale des mots sélectionnés (par défaut 6): <input type="text" name="nb_car" value="6" size="25"><br />
Nombre minimal d'occurences pour les mots sélectionnés (par défaut 3): <input type="text" name="nb_oc" value="3" size="25"><br />
<input type="submit" value=" si vous êtes prêt ">
</form>
</div>
</body>
</html>
qui renvoie vers le fichier mot_clef.php ci dessous
<?php
if (empty($_POST['fichier']))// la valeur ne doit Ûtre ni nulle ni vide ni zÚro
{
echo "Veuillez indiquer le nom du fichier àe; analyser <br /> Merci !";
include ('mot_clef.htm');
exit();
}
$alire=mysql_real_escape_string(htmlspecialchars($_POST['fichier']));
$type=substr((strrchr($alire,'.')),1);// type du fichier
if ($type<>'txt')
{
echo "<div align='center'><h1>J'ai prévenu !! Ici on ne traite <strong>BIEN </strong> que les fichiers de type <strong> .TXT </strong></h1></div><HR />";
}
if (!file_exists($alire))// la valeur ne doit Ûtre ni nulle ni vide ni zÚro
{
echo "<h1>Veuillez indiquer un nom du fichier qui existe réellement ! <br /> Merci !</h1>";
include ('mot_clef.htm');
exit();
}
if (isset($_POST['nb_car']))
{
$nbcar = $_POST['nb_car'];
}
else
{
$nbcar =5;
}
if (isset($_POST['nb_oc']))
{
$nbocd = $_POST['nb_oc'];
}
else
{
$nbocd = 2;
}
// *************************on peut analyser ***************************
// echo $alire; // uniquement pour débuggage éventuel
// ****************************
$handle = fopen($alire, "rb");
$text = stream_get_contents($handle); // on lit tout le fichier
fclose($handle);
//Petit nettoyage, pas si petit finalement ! La VACHE !!!
$text = strip_tags($text);
$text = htmlentities($text); // pour enlever le formatage HTML
$text = trim($text); // enleve débuts et fin de chaîne
$text = strtolower($text); // passe tout en minuscules
$text = strtr($text,"ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûýýþÿ","AAAAAAACEEEEIIIIDNOOOOOOUUUUYbsaaaaaaaceeeeiiiidnoooooouuuyyby"); // on enleve les accents
// les trucs de formatages
$text = str_replace("é","e",$text);
$text = str_replace("è","e",$text);
$text = str_replace("à","a",$text);
$text = str_replace("ù","u",$text);
$text = str_replace("â","a",$text);
$text = str_replace("ô","o",$text);
$text = str_replace("ê","e",$text);
$text = str_replace("û","u",$text);
$text = str_replace("î","i",$text);
$text = str_replace(" "," ",$text);
$text = str_replace(" "," ",$text);
$text = str_replace(" "," ",$text);
$text = str_replace(" "," ",$text);
$text = str_replace("é ","e",$text);
$text = str_replace("mé ","me",$text);
$text = str_replace("""," ",$text);
$text = str_replace(">"," ",$text);
$text = str_replace("\par"," ",$text);
$text = str_replace(">"," ",$text);
$text = str_replace("<"," ",$text);
$text = str_replace("ç"," ",$text);
$text = str_replace(" "," ",$text);
$text = str_replace(" "," ",$text);
$text = str_replace(" "," ",$text);
$text = str_replace(" "," ",$text);
// encore d'autres !
$text = str_replace("9c","oe",$text);
$text = str_replace("e8","e",$text);
$text = str_replace("e9","e",$text);
$text = str_replace("{"," ",$text);
$text = str_replace("}"," ",$text);
$text = str_replace("\ e","e",$text);
$text = str_replace(" \\"," ",$text);
$text = str_replace("\b"," ",$text);
$text = str_replace("/b"," ",$text);
$text = str_replace("("," ",$text);
$text = str_replace(")"," ",$text);
$text = str_replace("/n"," ",$text);
$text = str_replace(array(",","-",".","_","[","]",":",";","'",'"')," ",$text);
// ******************
// echo $text.'<hr>'; // uniquement pour contrôle de fonctionnement du prgm !
//Decomposition mot à mot
$mots = preg_split("/[\s,]+/", $text);
//Boucle d'analyse de chaques mots
$nbmots = count($mots);
// ***************************************************************
// ** on prépare l'ouverture tout de suite de la table de repèrage des mots ****
require('connect-BDD-txt.php');
include ('vider_table-motclef.php'); // pour avoir une base propre
// analyse de chaque mot l'un après l'autre
$t=0;
for ($t=0;$nbmots>$t;$t++)
{
$etud=$mots[$t];
if (strlen($etud)>$nbcar)
{
$req=@mysql_query("SELECT * FROM coursphp.mots_clef");
$WHI=0;
While($res=@mysql_fetch_array($req))
{
if ($res['MOT']===$etud)
{
// *** si OUI, on rajoute une occurence ****************
$n=$res['NBOC'];// on sélectionne le nombre d'enregistrements enregistrés
$n=$n+1;
$sql = "UPDATE `coursphp`.`mots_clef` SET NBOC = '$n' WHERE `MOT` = '$etud'";
$req = @mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$WHI=14;
}
// ****ci-dessous ******** fin de la boucle While !!! ***********
}
// le mot étudié est toujours OK mais n'existait pas dans la table
if ($WHI!=14) // si le mot n'a pas été trouvé
{
// *** on rajoute donc ce mot dans la table *********
$n=1;
$h=strlen($etud);
$sql = "INSERT INTO `coursphp`.`mots_clef` (ID_motclef ,MOT ,NBCAR ,NBOC) VALUES ('', '$etud', '$h', '$n')";
$ret = @mysql_query($sql) or die ('<br>Plantation rajout ici : '.mysql_error());
}
}
}
include ('aff_result-motclef.php');
// ***************** F I N ********************************************
?>
sur la dernière ligne on voit l'enchaînement vers aff_result-motclef.php que voici ci-dessous :
<?php
include('connect-BDD-txt.php');
// ************************ affichage du résultat **************
echo '<h3>Vous avez choisi de regarder les mots de '.$nbcar.' lettres et plus qui apparaissent '.$nbocd.' fois au moins dans le texte : </h3>';
echo '<strong><div align="center">'.mb_strtoupper($alire).'</strong> <br />donc fichier de type : '.$type.'<hr /></div>';
echo '<strong>Nombre de caractères utilisés : </strong>'.(strlen($text)).'<br />';
echo '<hr />';
echo '<strong>Nombre de mots utilisés : </strong>'.$nbmots.'<br />';
echo '<hr />';
echo '<TABLE BORDER="1">
<CAPTION><h1>liste des mots<br>enregistrés : </h1></CAPTION>
<TR><TH>MOT</TH><TH>Nombre de<br>caractères</TH><TH>Nombre des<br>occurences<br>dans le texte</TH></TR>';
$sql="SELECT * FROM `mots_clef` WHERE NBOC >$nbocd ORDER BY -NBOC,MOT";
$ret = mysql_query($sql) or die ("Planté ! voyez pourquoi ici : ".mysql_error());
WHILE ( $col = mysql_fetch_row($ret) )
{
echo '</TH><TH>'.$col[1].'</TH><TH>'.$col[2].'</TH><TH>'.$col[3].'</TH></TR>';
$a++;
$keywords=$col[1].','.$keywords;
}
echo $keywords.'beau travail';
echo '</TABLE>';
// ****** fin de tableau ****************
include ('fic_keywords.php');
include('date-actuelle.php');
echo '<strong>Jacques DUSSIN ~ 2008</strong>';
?>
le fichier fic-keywords.php va être modifier pour que les informations soient enregistrés dans une autre base dans laquelle figure le fichier formaté pour le WEB. Cette autre base servira à la création de page dynamiquement, en direct suite à un clic d'un internauite sur un lien dans mon site GHU !
je le mets dans l'état actuel :
<?php
$Fnm = 'les_keywords.txt';
$inF = fopen($Fnm,"a");
echo $alire.' est le fichier';
echo $keywords.' sont les mots clefs !';
$enreg=$alire.' '.$keywords.'jacques dussin';
fwrite($inF,$enreg."\n");
fclose($inF);
?>
Conclusion
J'ai un site WEB et je détermine de cette manière les "keywords" de mes pages.
Et ça m'aide beaucoup !
C'est pour cela que je veux partager mon travail !
Modifié le 4/02/2008 pour
- 1 - l'erreur sur nbcar au début ( gloups ! pardon ! )
- 2 - La suppression de ponctuations grace à LaurentKOogar (encore merci à lui )
Complètement repensé et modifié le 2/11/2008.
Historique
- 04 février 2008 14:27:36 :
- suite aux remarques sur le code lui même, pas sur sa raison d'être. ;-))
- 02 novembre 2008 19:11:57 :
- J'ai tout repris ... en mieux j'espère !
Sources de la même categorie
Sources en rapport avec celle ci
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
PHP et le référencement [ par DreamPush ]
Connaissant les mécanismes qui font marcher le référencement en HTML, je me demande, avant une refonte totale de mon site en PHP, comment fonctionne l
Active scripting : détection possible? [ par paprikarmasutra ]
Salut à tous,Voilà je cherche un moyen pour détecter si chez le client l'active scripting est activé ou non, auquel cas j'affiche tel ou tel code.Je r
Détection du rapport de confidentialité (Cookie) [ par MAsterC ]
Salut à tous,Je me demandais si c'était possible de détecter le "Rapport de confidentialité" quand il s'active sur notre
Référencement [ par Vin Gazoil ]
Salut a tous ! quelqu'un peut il me donner une adresse où l'on explique correctement le référencement ? merci d'avance
Détection de passage d'adresse dans le navigateur [ par Leneuf8000 ]
Bonjour, j'aurais aimé savoir la manière pour détecter si l'utilisateur rentre une page interdite pour lui directement dans le navigate
détection de robot [ par bob ]
bonjour à tous!j'ai chercher sur ce site et sur d'autre mais je n'arrive pas à mettre la main sur un script quidétecte les robots comme
Détecter une ouverture de mail [ par JeanMi66 ]
Salut à tous !J'ai déjà posté un topic sur ce forum en ce qui concerne la détection d'ouverture de mail.On m'a dit qu'il fall
Référencement trop massif à cause de: nompage.php?var=variable [ par JeanMi66 ]
Bonjour à tous j'ai un site ou sur l'index est présent une image JPG. Cette image est divisé en plusieurs parties qui sont des liens
Détection de collision... [ par anisite ]
J'ai une question un peu spéciale !J'aimerai faire une fonction de détection de collision du genre : j'entre en paramètre deux array re
Détection et redirection si le navigateur est Mozilla Firefox [ par rem78 ]
Bonjour,Je souhaite faire une détection de navigateur et une redirection seulement si le navigateur est Mozilla Firefox, sinon on reste sur la pa
|
Téléchargements
Logiciels à télécharger sur le même thème :
Comparez les prix Nouvelle version
|