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

Publié par Franzi dans java

Bonjour,
Le code est simple et compile, après être entré dans public void connect, il n'effectue pas this.session.get.transport et s'arrête. Sous eclipse avec Tomcat, j'ob...

Publié par Christof dans CMS

Je pense qu'il y a un problème au niveau de l'affectation du longint "Color" dans la
variable de type byte "r". A mon avis, cela risque de provoquer une erreur de
vérifi...

Publié par agence cms open source dans tuto

Vu la multitude des outils de gestion de contenu Open Source, sélectionner l'un d'entre eux exige de réaliser une comparaison fine. Les lecteurs défendent les raisons de leurs cho...

Publié par Fobec dans tuto

Bonjour,
est-ce que l'ecart entre 2 mesures est important ?
Un serveur web est loin d'une horloge suisse ;-) En fonction de la charge du serveur, de la mise en cache et du contenu du scr...

Publié par Patrice dans tuto

Bonjour

je cherche a activer mod_headers chez 1and1, impossible de mettre mes jpg en cache, auriez vous une piste ? merci !