Publié le 13/09/2010
Auteur fobec
Réseaux sociaux
0 partages
0 tweets
0 plus
0 commentaires

Extraire les chiffres et les lettres d'un string

Dans un texte donnée peut-on séparer les chiffres des lettres en PHP ? En se basant sur la valeur du caractère, il est possible de savoir si un string represente une lettre de l’alphabet ou un nombre.

Séparer les nombres des lettres

La fonction separeNumeric est un filtre à appliquer sur un String: Son principe est le suivant:
- extraire les chiffres du texte,
- filtrer les caractères valides.
<?php
/**
* Class PHP pour extraire les chiffres et les lettres d'un string
*
* http://www.fobec.com/php5/998/extraire-chiffres-lettres-string.html*
*/
class StringUtils {
 
    /**
     * Extraire les chiffres et les caractères d'un string
     * @param string $text
     * @return array tableau['num', 'char']
     */
    public static function separeNumeric($text) {
        $nums="";
        $chars="";
        if ($text!=null&&strlen($text)>0) {
            for ($i=0;$i<strlen($text);$i++) {
                $c=$text[$i];
                if(is_numeric($c)) {
                    $nums.= $c;
                } else if (eregi("[a-zA-Z]+", $c)) {
                    $chars.= $c;
                }
            }
        }
        return array('num'=>$nums, 'char'=>$chars);
    }
}
?>

Nettoyer un texte

Dans un texte comprtant des erreurs de charset ou de langue étrangère, voyons comment extraire uniquement les caractères valides.
<?php
$s='le12str#éù34in&6g';
$ar=StringUtils::separeNumeric($s);
echo ($ar['num']);
//Affiche '12346'
echo ($ar['char']);
//Affiche 'lestring'. 
?>

La méthode peut également etre utilisée pour scraper une page HTML. Par exemple, sur une page de langue anglaise, on souhaite récupérer un nombre. Le format américain prévoit une vigule comme séparateur de millier. Au lieu de convertir la somme vers le format français, il est plus rapide d'extraire uniquement les nombres du string pour obtenir la valeur affichée.

Ajouter un commentaire

Les champs marqués d'un * sont obligatoires, les adresses emails se sont pas publiées.

A lire aussi

Réseaux sociaux
Présentation de l'article
Catégorie
php5 - script
Mise a jour
13/09/2010
Visualisation
vu 1868 fois
Public
Internaute
Auteur de la publication
Fobec
Admin
Auteur de 261 articles
|BIO_PSEUDO|
Commentaires récents

Publié par hhhhh dans java

oooooooooooooooooooo

Publié par Melo12 dans php5

Super article. Merci

Publié par y__fe dans java

Impeccable merci !

Publié par D&Atilde;&copy;butant dans CMS

merci , et bon courage pour d'autre programme

Publié par Arkhee dans tuto

Bonjour,
Je ne connaissais pas Aloha mais je le trouve tres interessant dans le principe, on a vraiment l'impression d'editer directement l'article dans la page, contrairement aux autres.
En pra...