Vous êtes ici Codes PHP et MySQL > Chaînes > Extraire tous les mots d'une phrase

 

Extraire tous les mots d'une phrase

Fonction pour décomposer une chaîne de caractère en chacun de ses mots.

Elle renvoit un tableau dont chaque valeur est un des mots, dans le même ordre que la phrase initiale.
 
poujolrost-mathias
Site de l'auteur voir
[14] sources en PHP voir
Code vu 4634 fois
Enregistré le 22 Nov 2008
  • Digg ce code sur digg.com
  • Bookmark ce code sur del.icio.us
  • Bookmark ce code sur Google
  • Bookmark ce code sur Yahoo
  • Ajoute Extraire tous les mots d'une phrase
  • Partage ce code sur Facebook
 
 
 
 

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.
 
<?php
/******************************************************************************/
/*                                                                            */
/*                       __        ____                                       */
/*                 ___  / /  ___  / __/__  __ _____________ ___               */
/*                / _ \/ _ \/ _ \_\ \/ _ \/ // / __/ __/ -_|_-<               */
/*               / .__/_//_/ .__/___/\___/\_,_/_/  \__/\__/___/               */
/*              /_/       /_/                                                 */
/*                                                                            */
/*                                                                            */
/******************************************************************************/
/*                                                                            */
/* Titre          : Extraire tous les mots d'une phrase                       */
/*                                                                            */
/* URL            : http://www.phpsources.org/scripts472-PHP.htm              */
/* Auteur         : poujolrost-mathias                                        */
/* Date édition   : 22 Nov 2008                                               */
/* Website auteur : http://site.mathiaspoujolrost.net/competences/            */
/*                                                                            */
/******************************************************************************/
 
/* Fonction qui extrait chaque mot d'une chaîne de caractère et compose un array les contenant */
/* Type du paramètre : 
    $phrase :    string
*/
/* Pour l'appel :
    Exemple :
    <?php
    $quelquesmots = extraireMotsDUnePhrase("C'est ma phrase.");
    echo "<ul>"; 
    foreach($quelquesmots as $valeur) 
    {
        echo "t<li>$valeur</li>n"; 
    }
    echo "</ul>";
    // affichera : 
    // <ul>
    //         <li>C</li>
    //         <li>est</li>
    //         <li>ma</li>
    //         <li>phrase</li>
    // </ul>
    ?>
*/
function extraireMotsDUnePhrase($phrase)
{    
    /* caractères que l'on va remplacer (tout ce qui sépare les mots, en fait) */
    $aremplacer = array(",",".",";",":","!","?","(",")","[","]","{","}",""","'"," ");
    /* ... on va les remplacer par un espace, il n'y aura donc plus dans $phrase que des mots et des espaces */
    $enremplacement " "; 
    
    /* on fait le remplacement (comme dit ci-avant), puis on supprime les espaces de début et de fin de chaîne (trim) */
    $sansponctuation trim(str_replace($aremplacer$enremplacement$phrase)); 
    
    /* on coupe la chaîne en fonction d'un séparateur, et chaque élément est une valeur d'un tableau */
    $separateur "[ ]+"// 1 ou plusieurs espaces
    $mots split($separateur$sansponctuation); 
    
    return $mots;
}
?> 

 

Fonctions du code

: Crée un tableau - (PHP 4, PHP 5)
: Remplace toutes les occurrences dans une chaîne - (PHP 4, PHP 5)
: - (PHP 4, PHP 5)
: Scinde une chaîne en un tableau, grâce à une expression rationnelle - (PHP 4, PHP 5)
Commentaire
j'aime bien ta maniere de faire, perso je le fait en 2 lignes avec la classe [[:alpha:]] , elle ne prendra pas les caracacteres dit spéciaux. Pour y inclure les accente, il faut ajouter cette ligne



Code:
setlocale(LC_ALL,'fr-FR.ISO8859-1');
le probleme vient de config serveur. Certain serveur ne prendrons pas cette commande en consideration.. ton code est bien pour ca car il est actif sur tout les serveur :P




Code:
// Place tous les mots d'une chaine dans un tableau:
$regs1 = split("[^[:alpha:]]+", $texte);
 
Ajouter un commentaire
Code de sécurité

Attention: Les champs marqués d'une étoile * sont obligatoires
 
Librairie PHP

Connexion

 
 

Chaînes

 
 

PHP

 
 
 
 
    Offres d'emploi

Plus de 500 offres d'emploi PHP/MySQL

Offres d'emploi
 
        Publicité