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 3323 fois
Public
Internaute
Auteur de la publication
Fobec
Admin
Auteur de 267 articles
|BIO_PSEUDO|
Commentaires récents

Publié par farid dans CMS

formation delphi 7

Publié par medfayz dans java

hi everybody thanks for the code , and please can any one help me to fix that exception.
javax.media.NoPlayerException: Cannot find a Player for :vfw:0

thanks

Publié par Sophie dans tuto

Merci pour cette explication claire qui m'aide grandement... JS et moi, on est pas encore copain !

Publié par Alpcom dans java

Salut , juste signaler une petite faute de frappe dans mouseDragged
ce n'est pas int y = p.y - newPos.x;
int y = p.y - newPos.y; !! des comportements curieux apparaissaient sinon merci beaucoup...

Publié par Fobec dans logiciel

L'api ip to RIR est compatible avec les adresses IP au format ipV6