La base de données des scripts PHP - ASP & PERL
Programmation Web Hebergement

PHP ASP PERL

Gratuit Mutualisé Dédié
Rechercher


 
membres
S'inscrire

Mail : 
Passe : 
oublié ?
 
services
Développement
Kits graphiques
E.JavaScript
Domaines
Referencement
 
comscripts
Scripts PHP
Scripts ASP
Scripts PERL
Sources PHP
Sources ASP
Sources PERL
Les Ateliers
 
ressources
Les Livres
Forums
Liens
Faire un lien
Refrapide
 
partenaires
Kits Graphiques
CréEr Son Site
Pc Land
Annu Marseille
Argent à Gagner
Easy-Script.Com
Bons Plans Du N
CréEr Un Forum
Sarl L.M.2.I.
HéBergeur Gratu
Votre site ?

Vérifier la disponibilité d'un nom de domaine


Soundex  
 Informations rapides
Catégorie : PERL Auteur :
Sous-Catégorie : Algorithmes Ajouté le : 10-12-2003
Langage : PERL  CSID : S127
Visites de la page : 4407    

 Informations détaillées
Description :

Algorithme permettant de traduire un mot en code "phonétique"

Portion de code

1
2
3
4
5
6
7
8
9
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
# C) Copyright 2002 - 2003, Creativyst, Inc.
# http://www.Creativyst.com
# ###########################################

sub SoundEx
  {
      my($WordString, $LengthOption) = @_;
      my($WordStr, $CurChar, $LastChar, $SoundExLen, $WSLen, $FirstLetter);

      if($LengthOption) {
          $SoundExLen = $LengthOption;
      }
      if($SoundExLen > 10) {
          $SoundExLen = 10;
      }
      if($SoundExLen < 4) {
          $SoundExLen = 4;
      }

      if(!$WordString) {
          return("");
      }

      $WordString = uc($WordString);
      # Clean and tidy
      #
      $WordStr = $WordString;
      $WordStr =~ s/[^A-Z]/ /sig;   # replace non-chars with space
      $WordStr =~ s/^\s//sg;        # remove leading space
      $WordStr =~ s/\s$//sg;        # remove trailing space


      # Some of our own improvements
      #
      $WordStr =~ s/DG/G/sg;    # Change DG to G
      $WordStr =~ s/GH/H/sg;     # Change GH to H
      $WordStr =~ s/KN/N/sg;      # Change KN to N
      $WordStr =~ s/GN/N/sg;          # Change GN to N
      $WordStr =~ s/MB/M/sg;          # Change MB to M
      $WordStr =~ s/PH/F/sg;          # Change PH to F
      $WordStr =~ s/TCH/CH/sg;        # Change PH to F
      $WordStr =~ s/MP([STZ])/M$1/sg; # MP if followed by S,T,or Z
      $WordStr =~ s/^PS/S/sg;         # Change leading PS to S
      $WordStr =~ s/^PF/F/sg;         # Change leading PF to F

      # Above improvements could
      # change this first letter
      #
      $FirstLetter = substr($WordStr,0,1);


      # Begin Classic SoundEx
      #
      $WordStr =~ s/[AEIOUYHW]/0/sg;
      $WordStr =~ s/[BPFV]/1/sg;
      $WordStr =~ s/[CSGJKQXZ]/2/sg;
      $WordStr =~ s/[DT]/3/sg;
      $WordStr =~ s/L/4/sg;
      $WordStr =~ s/[MN]/5/sg;
      $WordStr =~ s/R/6/sg;

      # Remove extra equal adjacent digits
      #
      $WSLen = length($WordStr);
      $LastChar = substr($WordStr, 0, 1);
      for($i = 1; $i < $WSLen;$i++) {
          $CurChar = substr($WordStr,$i,1);
          if($CurChar eq $LastChar) {
              substr($WordStr,$i,1," ");
          }
          else {
              $LastChar = $CurChar;
          }
      }


      $WordStr = substr($WordStr,1);      # Drop first letter code
      $WordStr =~ s/\s//sg;               # remove spaces
      $WordStr =~ s/0//sg;                # remove zeros
      $WordStr .= "0000000000";           # pad with zeros on right

      $WordStr = "$FirstLetter$WordStr";  # Add first letter of word

      $WordStr = substr($WordStr,0,$SoundExLen);  # size to taste

      return($WordStr);
  }



 Les Commentaires

Soyez le premier à rédiger un commentaire sur ce code source !

Ajouter  

 Informations & Services  

Je désire recevoir ce code source par email.
Je désire recevoir la Newsletter de ComScripts.

Newsletter
92 163 abonnés

Autre Sources
 Algorithmes
- Calcul de de.

Tips
 Algorithmes
PHP (24)
ASP (1)

Des tonnes de trucs : Internet


  Le bon plan du moment  

Gen. en 0.07819sec. Retour à la page d'accueil
Copyright © 2005 - Visialis - RCS Nanterre 478 885 122 - Tous droits réservés - Nous contacter haut de page

Valid XHTML 1.0! Valid CSS!