begin process at 2012 05 27 19:53:16
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Chaîne de caratère

 > DETECTION DE L'ECRITURE SMS

DETECTION DE L'ECRITURE SMS


 Information sur la source

Note :
7 / 10 - par 4 personnes
7,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Chaîne de caratère Niveau :Débutant Date de création :15/09/2004 Date de mise à jour :15/09/2004 21:32:26 Vu :5 380

Auteur : Aramiil

Ecrire un message privé
Commentaire sur cette source (11)
Ajouter un commentaire et/ou une note

 Description

Cette petite fonction permet de verifier si un texte n'est pas écrits en écriture SMS. Pour cela, il verifie qu'il n'y ai pas dans le texte une trop grande proportion de mots trops courts.

Source

  • function sms_write($text, $min_letter=3, $min_words=5, $percent=2)
  • {
  • //preparation des variables
  • $table_text = explode(" ", $text);
  • $compte = 0;
  • $nb_mots = count($table_text);
  • //verification de chaque mot
  • for($t = 0; $t < $nb_mots; $t++)
  • {
  • if(strlen($table_text[$t]) <= $min_letter)
  • $compte++;
  • }
  • //test final
  • if($nb_mots > $min_words && ($nb_mots / $percent) < $compte)
  • {
  • return true;
  • } else {
  • return false;
  • }
  • }
  • /*
  • Cette fonction attends comme parametres:
  • $text: le texte à analyser
  • $min_letter (optionnel): le nombre minimum de lettre d'un mot pour qu'il ne soit pas considéré comme une abréviation
  • $min_words (optionnel): le nombre minimum de mots qui doivent être présent dans le texte pour que la fonction lance l'analyse
  • $percent (optionnel): le rapport abreviation / mots longs minimum pour que le message soit écrit en écriture sms
  • La fonction renvoi true si le message est en sms, et false sinon.
  • */
function sms_write($text, $min_letter=3, $min_words=5, $percent=2) 
{ 

   //preparation des variables 
   $table_text = explode(" ", $text); 
   $compte = 0; 
   $nb_mots = count($table_text);

   //verification de chaque mot 
   for($t = 0; $t < $nb_mots; $t++) 
   { 
      if(strlen($table_text[$t]) <= $min_letter) 
         $compte++; 
   } 

   //test final 
   if($nb_mots > $min_words && ($nb_mots / $percent) < $compte) 
   { 
      return true; 
   } else { 
      return false; 
   } 
} 

/*
Cette fonction attends comme parametres: 

$text: le texte à analyser 
$min_letter (optionnel): le nombre minimum de lettre d'un mot pour qu'il ne soit pas considéré comme une abréviation 
$min_words (optionnel): le nombre minimum de mots qui doivent être présent dans le texte pour que la fonction lance l'analyse 
$percent (optionnel): le rapport abreviation / mots longs minimum pour que le message soit écrit en écriture sms 

La fonction renvoi true si le message est en sms, et false sinon. 
*/

 Conclusion

bugs connus: Essayez donc de passez un texte style ca:

"je suis sur que ca marche"

par la fonction ;-)

Donc ne lui accordez pas une confiance absolue ;-)


 Historique

15 septembre 2004 15:09:47 :
Une petite faute de frappe
15 septembre 2004 21:32:26 :
Optimisation de la source, suite à un commentaire d'Anthomicro

 Sources du même auteur

Source avec Zip PHPMEWS - CONTENT MANAGMENT SYSTEM
Source avec Zip UN BLOG SIMPLE ET PERSONNALISABLE
Source avec Zip GALERIE D'IMAGE AVEC RÉATION DE MINIATURE ET COMPRESSION DES...
GESTION DES ERREURS

 Sources de la même categorie

ADRESSE ABSOLUE DE LA PAGE EN COURS, AVEC VARIABLES $_GET par Dariumis
Source avec Zip CLASSE D'OBJET DE RECHERCHE DE MOTS DANS DES TABLEAUX ET/OU ... par 8Tnerolf8
RÉCUPÉRER LES MINIATURES D'UNE VIDÉO YOUTUBE par tefa24600
Source avec Zip Source avec une capture CONVERTISSEUR DE NOMBRES EN TEXTE par macruz
Source avec Zip Source avec une capture CODAGE TEXTE >HTML, ISO, SPECIALCHARS, URL ET DECODAGE par Salva9473

Commentaires et avis

Commentaire de GRenard le 15/09/2004 13:41:25

Deux variables sont utilisées : $percents et $percent
Erreur !

Tu peux m'expliquer pourquoi tu appelles ca une fonction SMS ? c'est pour les téléphone ? Je ne vois pas ce que ca "doit" vérifier en tant que tel ? Quel est le contexte ?

Commentaire de LocalStone le 15/09/2004 13:49:35

Salut,
J'ai pas verfié le code, mais je trouve l'idée pas mal. Je pensais que tu allais utiliser les RegExp pour detecter si une phrase contient des mots SMS, mais le fait de verifier le pourcentage de nombre trop court est une bonne idée à laquelle je n'aurais pas pensé.

GRenard >> Je pense pouvoir répondre à sa place, parce que j'ai compris :) ... En fait, sa fonction peut par-exemple être utilisée pour verifier sur un forum si le texte est bien écrit en français pur et dur ('occupé' au lieu de 'OQP' en SMS, ou 'qui' au lieu de 'ki'). Voilà voilà ...

Une p'tite note ? Allez, 7/10 pour l'idée, mais je pense qu'il faudrait changer 2 ou 3 trucs pour que ce soit plus fiable.
++
LS.

Commentaire de Aramiil le 15/09/2004 15:04:47

Effectivement, c'est le but de cette source, eviter les problemes sur les forums. Et quand au deux variables, c'est une erreur de ma part lors du recopiage depuis mon poste de test...

Commentaire de Magidev le 15/09/2004 15:29:14

Pas mal comme fonction franchement c'est pratique de nos jours avec l'expension du GSM et d'Internet, certains mélanger les deux lol ;-)

GRenard j'adore la pertinence de tes commentaires lol ;-) autant sur cette source que sur les autres

Commentaire de Aramiil le 15/09/2004 16:10:34

Comme amelioration, je vois pas trop ce que je pourrais rajouter ;-) à part une recherche automatique de certains mots.

Commentaire de GRenard le 15/09/2004 17:46:36

Magidev >> T'es ironique la ? Si je ne comprenais pas pourquoi il s'appelle SMS bah je pose la question tout simplement...

Commentaire de Anthomicro le 15/09/2004 20:47:33

Salut ;-)

Comme amélioration : (optimisation). Tu remplaces ça :

     for($t = 0; $t < count($table_text); $t++)
     {
        if(strlen($table_text[$t]) <= $min_letter)
         $compte++;
     }

     //test final
     if(count($table_text) > $min_words && (count($table_text) / $percent) < $compte)
     {
        return TRUE;
     } else {
        return FALSE;
     }
par ça :
$nb_mots=count($table_text);

     for($t = 0; $t < $nb_mots; $t++)
     {
        if(strlen($table_text[$t]) <= $min_letter)
         $compte++;
     }

     //test final
     if($nb_mots > $min_words && (count($table_text) / $percent) < $compte)
     {
        return TRUE;
     } else {
        return FALSE;
     }

a ++

Commentaire de Anthomicro le 15/09/2004 20:48:29

Heu désolé, remplaces la fin par ça (un petit oubli) :

     if($nb_mots > $min_words && ($nb_mots / $percent) < $compte)
     {
        return TRUE;
     } else {
        return FALSE;
     }

a ++

Commentaire de Aramiil le 15/09/2004 21:32:35

Mise à jour effectuée ;-)

Commentaire de iubito le 20/09/2004 07:45:05

pour rendre plus fiable, il faudrait répertorier quelques mots courts français souvent utilisés dans les messages (je, tu, il, ils, sur, sûr, que, qui, ça, a, à, et, du, un, une, des, de, les, le, la, ma, mes, mon...).
Tu met dans un array, et pour considérer tes mots comme sms ou non, tu testes :
si ton mot < nbminimum de lettres ET !in_array(letableau, ton mot)
alors c'est un mot sms

Commentaire de cbibi le 25/09/2004 14:40:57

Hum source intéressante , mais c'est difficile de dire si un mot est ou n'est pas du sms : la phrase : "je m'apelle waz" vas devenir : " m'apelle waz " , si je defini $min_letter=3 , etant donné que l'ecriture sms , reste sur quelques mots , il aurait été préferable de définir des str_replace ...

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,484 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales