Générateur de balise meta keywords

Soyez le premier à donner votre avis sur cette source.

Vue 6 156 fois - Téléchargée 274 fois

Description

Ceci est un script permettant de générer une balise META Keywords automatiquement.

Dans l'exemple, la fonction est appelée par : keywords($chaine,1000);

$chaine doit contenir le texte de votre page, par exemple, et 1000 représente le nombre maximum de caractères que vous souhaitez dans la balise keywords.

Un tableau $bad_word est créé, il contient tous les mots que vous ne souhaitez pas voir apparaitre dans vos keywords. Il est donc à compléter.

La 1ère fonction utilisée (unaccent); n'est pas de moi, mais est très souvent utilisée dans nombre de codes sources.

Mise à jour et autre codes PHP sur http://www.parse-error.com

Source / Exemple :


<?php
/**

  • Générateur de balise keywords
* /* Fonction qui supprime les accents dans une chaîne */ function unaccent($text) { $trans = get_html_translation_table(HTML_ENTITIES); foreach ($trans as $literal => $entity) { if (ord($literal) >= 192) { $replace[] = substr($entity, 1, 1); $search[] = $literal; } } return str_replace($search, $replace, $text); } /* Fonction qui génère les keywords */ function keywords($string, $max_length_keywords) { $noTag = html_entity_decode(strip_tags(trim($noTag))); // On nettoie la chaine $noTag = preg_replace('/[\n\r\t]/', ' ', $noTag); // On élimine les retours chariot, retours à la ligne et tabulations $string = strtolower($string); // Met tout en minuscule $string = unaccent($string); // Enleve les accents $string = eregi_replace("[^A-Z\']", " ", $string); // Enlève tout ce qui n'est pas alphabétique ou une apostrophe $string = preg_replace('#(^| +)[a-zA-Z]{1,2}\'#', ' ', $string); // Enleve les apostrophes $words = explode(' ', $string); // Scinde la chaine en tableau /* Effacement des mots non significatifs (Tableau exemple à compléter) */ $bad_word = array ('des', 'est', 'avec', 'les', 'une', 'sur', 'nous', 'qui', 'que', 'par', 'pas', 'dans', 'leur', 'ont', 'pour', 'sont', 'plus', 'ndlr', 'ceux', 'ceci', 'cela','cette'); $words = array_diff($words, $bad_word); /* Suppression des entrées de moins de trois caractères */ foreach($words as $cle=>$valeur) { if(strlen($valeur) > 2) { $words2[]=$words[$cle]; } } $freq = array_count_values($words2); // Calcul du nombre d'occurences de chaque entrée arsort($freq); // Tri du tableau associatif en fonction des valeurs /* Création de la chaine de sortie */ $keywords=''; foreach ($freq as $tk => $tv) { if($keywords!='') $keywords .= ', '.$tk; else $keywords=$tk; } if(strlen($keywords)>$max_length_keywords) { $keywords=substr($keywords,1,$max_length_keywords); // On coupe à $max_length_keywords caractères $keywords=substr($keywords,0,strlen($keywords)-strlen(strrchr($keywords,','))); // Coupe propre après le dernier mot clé } return $keywords; } $chaine="Ce texte, <br />rédigé aujourd'hui, le 09 mars de l'année 2010, est un texte piège, avec des chiffres, des apostrophes mal placées, de la ponctuation... et du <b>HTML</b> !!!"; echo keywords($chaine,1000); ?>

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
6
Date d'inscription
mardi 9 février 2010
Statut
Membre
Dernière intervention
29 mars 2010

Bonjour, non, tel quel ca n'est pas équivalent, vous pouvez tester et le constater ;-) Néammoins, vous avez raison, il y a surement moyen de simplifier ce bloc. Avis aux amateurs ! Je cherche aussi.
Messages postés
192
Date d'inscription
lundi 24 décembre 2001
Statut
Membre
Dernière intervention
3 février 2010

Certes pour les métas, c'est pas vraiment utile, mais bon, ce code pourrais servir a récupère les mot clef pour un forum perso par exemple, pour avoir une recherche plus ciblé ...
Par contre :
Ce code me chagrine :
/* Création de la chaine de sortie */
$keywords='';
foreach ($freq as $tk => $tv)
{
$keywords .= ', '.$tk;
}
Sa se ne serais pas plus simple ?
$keywords = implode(', ', array_flip($freq));
Messages postés
225
Date d'inscription
mercredi 26 juillet 2006
Statut
Membre
Dernière intervention
16 août 2018

J'avais moi-même pondu un truc du même genre mais trop lourdingue, j'avais tout gommé !

Bye !
Messages postés
225
Date d'inscription
mercredi 26 juillet 2006
Statut
Membre
Dernière intervention
16 août 2018

C'est bien, parseerror ! ok et merci
J'ai fait "tourner" le générateur de keywords et cela me permet, en fait de trouver les mots clef à placer dans un petit texte que j'écris en relation avec le sujet traité, texte que je place dans la BDD en "description" et qui sera pris "à la volée" lors d'un clic d'un visiteur !

Je mets une bonne note, mais, perfectionnisme oblige, je ne mets JAMAIS le maxi, car on peut toujours s'améliorer !!! ;-D

Prends bien soin de toi !
Messages postés
6
Date d'inscription
mardi 9 février 2010
Statut
Membre
Dernière intervention
29 mars 2010

Oui tout à fait, pour la description, si ton site comporte des articles dans une BDD, tu peux reprendre automatiquement le titre de l'article par exemple dans ta balise META description.
Afficher les 12 commentaires

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.

Du même auteur (ParseError)