Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1148 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  comment couper une chaine

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

comment couper une chaine

n°1309490
ma_mat44
Posté le 20-02-2006 à 10:30:07  profilanswer
 

bonjour,
Voila j'ai une chaine de caractere qui ne changera jamais de forme por-001-002
et je voudrais pouvoir en retirer le chiffre 001 avai vous une idée car je debute en php merci d'avance

mood
Publicité
Posté le 20-02-2006 à 10:30:07  profilanswer
 

n°1309491
skeye
Posté le 20-02-2006 à 10:32:27  profilanswer
 

explode() / substr()


Message édité par skeye le 20-02-2006 à 10:33:16

---------------
Can't buy what I want because it's free -
n°1309493
MS-DOS_199​1
www.newbie-project.net
Posté le 20-02-2006 à 10:34:42  profilanswer
 

Code :
  1. echo explode('-',substr($chaine,4,3));


---------------
Viendez sur le Newbie-Project et essayez le Newbie-Directory (nouveau)
n°1309498
ma_mat44
Posté le 20-02-2006 à 10:43:16  profilanswer
 

j'ai bien essayé de mettre echo explode('-',substr($quartier_client,4,3));  
mais le probleme est qu'il me ressort array au lieu de 001 ????
savais vous pouquoi?


Message édité par ma_mat44 le 20-02-2006 à 11:23:35
n°1309524
ma_mat44
Posté le 20-02-2006 à 11:26:10  profilanswer
 

voila mon code:
 
$queryic=mysql_query("select * from clients where id_client=$id_c" );
    $aff_ic=mysql_fetch_array($queryic);
    $quartier_client=$aff_ic[q_client];
 echo explode('-',substr($quartier_client,4,3));

n°1309526
skeye
Posté le 20-02-2006 à 11:28:22  profilanswer
 

lis la doc des fonctions qu'on t'a données au lieu de recopier bêtement la réponse de MS-DOS_1991, qui est fausse.:o


---------------
Can't buy what I want because it's free -
n°1309532
ma_mat44
Posté le 20-02-2006 à 11:37:59  profilanswer
 

oui oui j'ai vu que ca retournai un tableau j'ai trouvé l'erreur
mais maintenant le probleme est qu'il me ressort bien 001 mais quand je veu l'incrementer il me marque 2 et non 002 et la je voi pas lui dire de me resortir les troi chiffre
 
$numero = explode('-',substr($quartier_client,4,3));  
 $numero[0]=$numero[0] +001;
 echo $numero[0];

Message cité 1 fois
Message édité par ma_mat44 le 20-02-2006 à 11:38:34
n°1309539
cinocks
Posté le 20-02-2006 à 12:08:16  profilanswer
 

Code :
  1. $montableau = explode($machaine, '-');
  2. echo $montableau[0] . $montableau[2];
  3. //pour voir le contenu du tableau
  4. print_r($montableau);


---------------
MZP est de retour
n°1309540
cinocks
Posté le 20-02-2006 à 12:10:52  profilanswer
 

ma_mat44 a écrit :

oui oui j'ai vu que ca retournai un tableau j'ai trouvé l'erreur
mais maintenant le probleme est qu'il me ressort bien 001 mais quand je veu l'incrementer il me marque 2 et non 002 et la je voi pas lui dire de me resortir les troi chiffre
 
$numero = explode('-',substr($quartier_client,4,3));  
 $numero[0]=$numero[0] +001;
 echo $numero[0];


Euh, ca me parait tout à fait normal. Tu as d'un coté une chaine de caractere '001'. De l'autre tu veux l'incrementer. Déjà PHP est sympa lorsque tu lui fais un +1, il caste automatiquement le '001' en numerique. Mais tu ne verras jamais un nombre représenté en 002 de maniere numerique.
 
A toi de reformater ce nombre. Et là, la doc PHP est faite pour ca.


---------------
MZP est de retour
n°1309556
ma_mat44
Posté le 20-02-2006 à 12:37:21  profilanswer
 

j'ai essayé de mettre un mask en faisant ainsi mais ca ne marche pas
monMask = new Mask("0###", $numero[0]);
 echo monMask;
 
quelqu'un peu mexpliqué le fonctionnement car je patauge et je ne trouve meme pas dans le bouquin pour les nuls ...

mood
Publicité
Posté le 20-02-2006 à 12:37:21  profilanswer
 

n°1309630
cinocks
Posté le 20-02-2006 à 14:04:01  profilanswer
 

http://fr.php.net/manual/fr/ref.strings.php
 
une methode simple  
 
 

Code :
  1. echo substr('000', 3-strlen($monchiffre)) . $monchiffre;


 
un part du principe que ton nombre ne depasse pas trois chiffre et qu'il doit toujours faire 3 caracteres. Tu pars d'une chaine de '000' où tu retire autant de caractere qu'il y en a dans ton nombre. Puis tu ajoutes ton nombre.
 
1 devient 00[0] . 1 => 001
99 devient 0[00] . 99 =>099


---------------
MZP est de retour
n°1312118
omega2
Posté le 23-02-2006 à 12:41:23  profilanswer
 

Code :
  1. echo sprintf("%03d",$numero[0] +001);

Sprintf retourne une "chaine formaté".
Le % indique qu'on va remplacer les caractéres suivant (% compris) par le contenu de la prochaine variable.
"%d" indiquerait qu'on va remplacer ces deux caractéres par le contenu de la prochaine variable en la considérant comme un nombre entié.
"%03d" indique qu'on va remplacer ces 4 caractéres par un nombre entié en rajoutant sufisament de caractére "0" devant pour obtenir une chaine d'au moins 3 caractéres.
 
C'est me semble t'il plus propre que le coup du "substr" et c'est surtout conçu pour ce genre de cas. Par contre, je suis incapable de dire lequel serait le plus rapide.

n°1312124
h4rold
Posté le 23-02-2006 à 12:47:57  profilanswer
 

moi je plussoie omega2 il faut utiliser sprintf :o
Vive le C :o


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  comment couper une chaine

 

Sujets relatifs
Boucle avec chaine vide : je comprends pas[BATCH] Détecter une chaine
VERIFIER CONTENU CHAINE CARACTEREcouper une chaîne [résolu avec strtok]
Couper chaîne de caractère(Résolu) [CSS] Forcer une chaîne à se couper (en fin de cellule)
[PHP] Couper une chaîne de caractères...[c] Couper une chaine de caractere en 2 [RESOLU]
[PHP]-> Reg. Exp. -> couper une chaine > X caractères ..ENCORE POUR MON STAGE : Comment couper une chaine en Cold Fusion
Plus de sujets relatifs à : comment couper une chaine


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR