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

Publié par Fobec dans logiciel

prise en charge du format ipV6. L'api est compatible avec tous les ip qu'elles soient au format ipV4 ou ipV6.

Publié par neuro dans CMS

exemple edifaint et trés interessant

Publié par Fobec dans php5

Bonjour,
vous pouvez poster un message sur le forum, la communaut vous donnera un coup de main pour la mise en place du script.

Publié par leflo dans php5

Bonjour
Sans parler du fait que l'IP peut ne pas vouloir dire grand chose, en cas de proxy/translation comment on fait? On voit pas et on interdit tout meme si l'utilisateur n'est pas responsa...

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 !