Générateur de balise meta keywords

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

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)