begin process at 2010 03 21 19:01:20
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Débutant(e)

 > 

couper une chaine


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

couper une chaine

lundi 4 août 2008 à 12:26:30 | couper une chaine

zut69

Bonjour,

J'ai un grand nombre sous une forme précise que je voudrais découper.

Voici un nombre: 123456789

et je voudrais faire une boucle qui mette dans une variable des nombres à 3 chiffres.

C'est à dire que dans ce cas, j'aimerais récupérer 123 puis 456 puis 789

Jusque là j'arrive à me débrouiller avec substr en coupant tous les 3, mais le souci
c est quand le nombre n'est pas un multiple de 3. Il faudrait que le nombre plus petit (à 1 ou 2 chiffres)
soit le premier à sortir.
Par exemple, si je soumets ce nombre: 12345678901

Je voudrais obtenir: 12 puis 345 puis 678 puis 901

Merci pour votre aide,

FF
lundi 4 août 2008 à 13:21:10 | Re : couper une chaine

coucou747

salut
on peut avoir ton code ?

debuger c'est plus rapide que recreer de 0.
lundi 4 août 2008 à 15:13:10 | Re : couper une chaine

Evangun

Hello,

moi je sens bien un petit substr( ) pour enlever les 1 ou 2 premières lettres si ce n'est pas divisible par trois (if strlen($chaine)%3 !== 0) et ensuite un str_split( ).

à+
lundi 4 août 2008 à 15:20:20 | Re : couper une chaine

coucou747

Réponse acceptée !
$foo = array();

$len = strlen($chaine);

$i = ($len % 3 == 0 )?3:($len%3);
$pos = 0;
while ($pos < $len){
$foo[] = substr($chaine, $pos, $i); $i = 3; $pos += $i;
}

en separant le premier cas des autres, on peut faire plus rapide.
lundi 4 août 2008 à 15:20:20 | Re : couper une chaine

coucou747

$foo = array();

$len = strlen($chaine);

$i = ($len % 3 == 0 )?3:($len%3);
$pos = 0;
while ($pos < $len){
$foo[] = substr($chaine, $pos, $i); $i = 3; $pos += $i;
}

en separant le premier cas des autres, on peut faire plus rapide.
lundi 4 août 2008 à 16:01:54 | Re : couper une chaine

Evangun

Ah et au fait, là on parle de chaîne, mais si c'est juste pour formater un nombre, tu as la fonction number_format($nombre, 0, ',', ' ');
à+
lundi 4 août 2008 à 18:39:50 | Re : couper une chaine

zut69

Merci beaucoup pour vos réponses,
la ligne vraiment utile, c est: $i = ($len % 3 == 0 )?3:($len%3);
je me suis débrouiller comme ça:

        $len = strlen($decrypte);
            for($i=0;$i<$len;$i+=3)
            {
            if($i==0) $longueur = ($len % 3 == 0)?3:($len%3);
            $contenu.=chr(substr($decrypte,$i,$longueur);
            $longueur=3;
            $x++;
            }

En fait, c'est un code de décryptage, les 3 chiffres représente un nombre ascii
que je reconverti en lettre avec chr.


Cette discussion est classée dans : nombre, chiffres, chaine, couper


Répondre à ce message

Sujets en rapport avec ce message

couper une chaine [ par brezoneg ] Dans des champs j'insère des valeurs du type :champ amachin.(PLR) truc.(SH) bins.(JCL) pendant un affichage je voudrais couper cet enregistrement en r fonction ki koup !! [ par saad123 ] salut!!!voila je cherche a couper une chaine de caractere trop longue, ya til une fonction pour couper une chaine au caractère n ???merci Couper uen chaine de caracteres [ par SatanCorporation ] Salut a tous!!!!comment je peux faire pour couper uen chaine de caracteres apres que n soit egal a n en coupant celle ci au mot suvant :$mavariable="1 Nombre de caractere dans une chaine ? [ par Joez ] Yop yopje veux compter le nombre de cartactere ( lettre, espace, symbole.. enfin tout) d'une chaine de caractereComment faire ?Merci [debutant]couper une chaine [ par jimmy69 ] Bonjour a tous,Voila je me suis fait un p'tit systeme de newd tout simple ! apres avoir vu cette semaine grace a un code comment on fait pour couper u Couper une chaine tous les X mots [ par 3xodius55 ] Bonjour (ou re-bonjour pour quelques uns^^),Est-ce que vous sauriez par hasard comment je pourrai couper une chaine tous les X mots.La chaîne en quest Nombre Octec Chaine Caractere [ par josh666 ] Bonjour a tous !Est-il possible de connaitre la taille (en octec) du contenu d'une variable, sachant que le contenu de la variable est une chaine de c obtenir la position du premier nombre dans une chaine de caracteres [ par jsuisperdu ] bonjour,je cherche à caluler automatiquement la poisiton de la premiere valeur numérique dans un texte.exemple : "le chien de la voisine a mange 52 ch Nombre caractère dans chaine [ par yoarf ] Bonjour,Dans la chaine de caractères "$rep" je voudrais retourner le nombre de "/" (en fait c'est un chemin d'accès, je veux retourner le niveau de pr compter le nombre de sous chaine dans une chaine [ par loupile ] Bonjour, alors voila j'ai une chaien $tag='http://www.monsite.com/test.php?url=http://www.monsite2.com/'  comment puis je connaitre le nombre de sous


Nos sponsors


Sondage...

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,655 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales