php+mySQL: analyse keyword density

WRInaute accro
Hello,

Comme il y'a certaines choses (et non des moindres) que je ne sais pas faire en php, et que je suis loin d'être le dieu de la query, j'aimerais solliciter votre aide pour un petit projet/test.


Imaginons un contenu texte (un article, une news) contenu dans une variable $content.

Imaginons une table de DB, dont une colonne serait [expressions].

J'aimerais, un peu à la manière dont le fait Outiref extraire dans 3 tableaux:

- les 10 expressions de 3 mots les plus courantes dans $content qui ont une occurence dans [expressions].
- les 10 expressions de 2 mots les plus courantes dans $content qui ont une occurence dans [expressions]
- les 10 mots les plus courants dans $content qui ont une occurence dans [expressions]

...mais je sèche.

Si quelqu'un peut m'aider, ça ensoleillerait ma journée :D
 
WRInaute impliqué
salut,
j'ai exactement développé cela y a quelques années !
Je sais ca t'aide pas pour le moment, mais je vais essayer de retrouver le script :)
 
WRInaute impliqué
voici mon script adapté à ton besoin, ca devrait faire ton bonheur :)
Code:
	function getMotClef( $content, $limit = 10 ) {

		$tab_mots = array();
		$tab_occur = array();
		$mot = '';
		
		$content = html_entity_decode( strip_tags($content) );

		for( $i=0; $i<strlen($content); $i++ ) {

			if( strpos( "/[0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZéëèàêâùïüûçôîÂÈÀÛÊÏ]/", $content[$i] ) === false ) {

				if( strlen( $mot ) > 4 ) {

					array_unshift( $tab_mots, strtolower(trim($mot)) );
					if( !empty($tab_mots[2]) ) {
						@$tab_occur['3'][ $tab_mots[2]." ".$tab_mots[1]." ".$tab_mots[0]]++;
					}
					if( !empty($tab_mots[1]) ) {
						@$tab_occur['2'][ $tab_mots[1]." ".$tab_mots[0]]++;
					}
					if( !empty($tab_mots[0]) ) {
						@$tab_occur['1'][ $tab_mots[0]]++;
					}
				}
				if( $content[$i] == '.' || $content[$i] == '\n') {
					$tab_mots = array();
				}
				$mot = '';
			}
			else {
				$mot .= $content[$i];
			}
		}
		arsort( $tab_occur['1'] );
		arsort( $tab_occur['2'] );
		arsort( $tab_occur['3'] );

		$z = 0;
		foreach( $tab_occur['1'] as $key => $value )
			if( $z++ < $limit ) 
				$return['1'][$key] = $value;
		
		$z = 0;
		foreach( $tab_occur['2'] as $key => $value )
			if( $z++ < $limit ) 
				$return['2'][$key] = $value;
				
		$z = 0;
		foreach( $tab_occur['3'] as $key => $value )
			if( $z++ < $limit ) 
				$return['3'][$key] = $value;
				
		return $return;
	}
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut