Précédent   Forum des professionnels en informatique > PHP > Langage > Regex
Regex Forum d'entraide sur les expressions rationnelles PHP. Avant de poster -> FAQ regex, Cours de regex et Sources de regex
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/03/2007, 08h50   #1
Membre habitué
 
Inscription : octobre 2006
Messages : 325
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 325
Points : 137
Points : 137
Par défaut Comment fusionner 2 entiers et defusioner

il me s'emble avoir lu que pour fusionner 2 variables en une seule, la fonction explode peut le faire mais je ne trouve pas comment l'utiliser

merci de votre aide

parcontre si vous connaissez une autre fonction qui permet de faire la meme chose je suis preneur

se que je veut c'est :
$var1=22458
$var2=00058

$fusion=2245800058

merci de votre aide
teen6517 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/03/2007, 09h03   #2
Nouveau Membre du Club
 
Inscription : mars 2007
Messages : 41
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Hérault (Languedoc Roussillon)

Informations forums :
Inscription : mars 2007
Messages : 41
Points : 29
Points : 29
Salutations,

Pour moi il te faut convertir les deux variables en chaîne de caractères, les concaténer et de convertir en entier si besoin après.

Code :
1
2
 
$fusion = intval(strval($var1) . strval($var2));
Mormegil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/03/2007, 09h04   #3
Expert Confirmé
 
Avatar de titoumimi
 
Inscription : décembre 2003
Messages : 3 717
Détails du profil
Informations personnelles :
Âge : 31

Informations forums :
Inscription : décembre 2003
Messages : 3 717
Points : 3 082
Points : 3 082
alors pour la petite info...

- explode permet de découper une chaîne de caractères suivant un séparateur définit dans un tableai

- implode permet de faire l'inverse, à savoir concaténer différente éléments d'un tableau, séparés par un séparateur.

Dans ton cas, une simple concaténation devrait suffire ( $fusion = $var1.$var2; ), mais il va falloir faire attention aux 0 qui commencent tes chiffres : ces 0 risquent de disparaitre. Il me semble que ça se gère avec sprintf, mais sans certitude
__________________
Globalement inoffensif
Merci de respecter les règles du forum.
Aucune question technique par MP !
_______________________________________________________________________
La rubrique Ruby / Rails recrute. Contactez moi !
_______________________________________________________________________
Cours Ruby et Ruby on Rails (RoR) - FAQ Ruby / Rails - Livres Ruby / Rails
Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
Tutoriaux HTML/CSS et PHP
titoumimi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/03/2007, 09h05   #4
Membre habitué
 
Inscription : octobre 2006
Messages : 325
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 325
Points : 137
Points : 137
ok merci

en plus je n'est besoin de rien convertir car c'est 2 variable vienne de formulaire donc je croit que je n'est pas besoin de les convertir

je vais tester et je vous tiens au courant
teen6517 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/03/2007, 09h10   #5
Nouveau Membre du Club
 
Inscription : mars 2007
Messages : 41
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Hérault (Languedoc Roussillon)

Informations forums :
Inscription : mars 2007
Messages : 41
Points : 29
Points : 29
Effectivement si à la base ce sont des entiers, les zéros qui sont devant disparaissent!
Mais si tu les récupères d'un formulaire, tu dois pouvoir les concaténer directement sans faire de transtypage, là les zéros sont considérés comme des caractères et donc conservés.
Mormegil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/03/2007, 09h22   #6
Membre habitué
 
Inscription : octobre 2006
Messages : 325
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 325
Points : 137
Points : 137
en faite je me suis tronper je ne l'ai recupaire pas de formulaire ils sont dans un formulaire puis ils parte dans une base de donner (oracle) je l'extrai de oracle pour les stoquer dans un tableau a une dimention

je l'ai recupaire de se tableau mais je vien de tester et les "0" ne disparese pas

sa doit venir de la base de donner car le champ qui a resut c'est variable est en char 5 byte

quoi qu'il en soit merci de votre aide a tous les deux
teen6517 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/03/2007, 09h53   #7
Membre habitué
 
Inscription : octobre 2006
Messages : 325
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 325
Points : 137
Points : 137
je passe la variable fusion dans l'url et je la recupaire dans ma nouvel page

pour defusioner j'avait pencer me servir de sa :
Code :
1
2
preg_match('`(?:^|[^\d])(\d{5})\d{5}`', $fusion, $var1);
$var1=$var1[1]
car ce code permet d'extraire les 5 premier chiffre de la variable et de stocker dans un tablo differente valeur
$var1[0]=$fusion
$var1[1]= les 5 premier chiffre de $fusion

quelqu'un c'est comment recuperer les 5 dernier chifre de $fusion??
teen6517 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/03/2007, 09h55   #8
Expert Confirmé
 
Avatar de titoumimi
 
Inscription : décembre 2003
Messages : 3 717
Détails du profil
Informations personnelles :
Âge : 31

Informations forums :
Inscription : décembre 2003
Messages : 3 717
Points : 3 082
Points : 3 082
si tu veux systématiquement les X premiers/derniers/autres caractères d'une chaîne, les regexp, c'est un peu comme sortir le tank pour tuer une mouche

substr est fait pour toi
__________________
Globalement inoffensif
Merci de respecter les règles du forum.
Aucune question technique par MP !
_______________________________________________________________________
La rubrique Ruby / Rails recrute. Contactez moi !
_______________________________________________________________________
Cours Ruby et Ruby on Rails (RoR) - FAQ Ruby / Rails - Livres Ruby / Rails
Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
Tutoriaux HTML/CSS et PHP
titoumimi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/03/2007, 10h05   #9
Membre habitué
 
Inscription : octobre 2006
Messages : 325
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 325
Points : 137
Points : 137
merci pour ton tuto il est sympa

a pret pour l'histoire du tank c'est pas ma faute

j'ai demander sur le forum comment faire pour extraire une serie de chifre dans une variable et on ma proposer une solus en java scrip je croit ou sa les RegEx

merci pour tes conseil
teen6517 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/03/2007, 10h06   #10
Membre habitué
 
Homme
Inscription : octobre 2006
Messages : 124
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : octobre 2006
Messages : 124
Points : 100
Points : 100
Citation:
Envoyé par teen6517
je passe la variable fusion dans l'url et je la récupére dans ma nouvelle page

pour découper j'avais pensé me servir de ça :
Code :
1
2
preg_match('`(?:^|[^\d])(\d{5})\d{5}`', $fusion, $var1);
$var1=$var1[1]
car ce code permet d'extraire les 5 premiers chiffres de la variable et de stocker dans un tableau différentes valeurs
$var1[0]=$fusion
$var1[1]= les 5 premier chiffre de $fusion

quelqu'un sait comment récupérer les 5 derniers chiffres de $fusion??
Et voici une solution :
$cinqDerniers = substr($fusion, strlen($fusion) - 5, 5);
bigben99 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/03/2007, 10h09   #11
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
Salut

Défusionner sera une tâche difficile, il sera préférable de conserver et de réutiliser les variables originales.
Concaténer (fusionner) deux variables se fait au moyen du point :
Si tu as besoin des zéros devant, alors prends garde à utiliser des chaînes et non des nombres (cela semble être le cas).
Si tu n'as pas besoin des zéros, tu peux par exemple convertir en entier avec intval().

Citation:
je l'ai recupaire de se tableau mais je vien de tester et les "0" ne disparese pas
Cela semble vouloir dire que tu ne veux pas des zéros, en fin de compte ?

Pour obtenir une partie d'une chaîne, comme le dit titoumimi, utilise substr().
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/03/2007, 10h21   #12
Membre habitué
 
Inscription : octobre 2006
Messages : 325
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 325
Points : 137
Points : 137
merci a tous voici mon code final

Code :
1
2
3
4
5
6
preg_match('`(?:^|[^\d])(\d{5})\d{5}`', $fusion, $var1);
$var1=$var1[1];
$var2=substr("$fusion", -5, 5);
 
echo "var2 : ".$vias_ine."<br />";
echo "var1 : ".$vias_codigo."<br />";

$fusion==0004122001

$var1==00041
$var2==22001

il me fallait garder les "0" car se sont des code que je doit comparer dans une base de donner et dans la base de donner il y a le "0" donc si je l'est quitte je ne trouverait plus le code dans la base et j'ai des erreur


merci pour votre aide a tous sa marche niquel
c'est pile se qu'il me faut
teen6517 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/03/2007, 10h27   #13
Membre habitué
 
Inscription : octobre 2006
Messages : 325
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 325
Points : 137
Points : 137
Sinon Yogui a dit :
Citation:
Défusionner sera une tâche difficile, il sera préférable de conserver et de réutiliser les variables originales.
Dans se cas toi comment tu ferait pour passer 2 variable d'une page a l'autre en php

car je clique sur un lien pour passer d'une page a l'autre et je ne sait passer qu'une seule variable

comment passer plusieur variable par url?
teen6517 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/03/2007, 10h28   #14
Expert Confirmé
 
Avatar de titoumimi
 
Inscription : décembre 2003
Messages : 3 717
Détails du profil
Informations personnelles :
Âge : 31

Informations forums :
Inscription : décembre 2003
Messages : 3 717
Points : 3 082
Points : 3 082
Code :
http://monurl/mapage.php?var1=valeur1&var2=valeur2&var3=valeur3
__________________
Globalement inoffensif
Merci de respecter les règles du forum.
Aucune question technique par MP !
_______________________________________________________________________
La rubrique Ruby / Rails recrute. Contactez moi !
_______________________________________________________________________
Cours Ruby et Ruby on Rails (RoR) - FAQ Ruby / Rails - Livres Ruby / Rails
Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
Tutoriaux HTML/CSS et PHP
titoumimi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/03/2007, 10h31   #15
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
Si tu me le permets, voici ta version, simplifiée :
Code :
1
2
3
4
5
6
7
8
if(preg_match('`^(\d{5})(\d{5})$`', $fusion, $matches))
{
   $var1=$matches[1];
   $var2=$matches[2];
 
   echo "var2 : $vias_ine<br />";
   echo "var1 : $vias_codigo<br />";
}
Et une solution plus légère :
Code :
1
2
3
4
5
$var1=substr($fusion, 0, 5);
$var2=substr($fusion, -5, 5);
 
  echo "var2 : $vias_ine<br />";
  echo "var1 : $vias_codigo<br />";
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/03/2007, 10h48   #16
Membre habitué
 
Inscription : octobre 2006
Messages : 325
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 325
Points : 137
Points : 137
et la fason encor plus simple de titoumimi

Code :
echo "<td><a href='formulair_modif_vias.php?vias_codigo=".$tablo_vias_ine[$j]."&vias_ine=".$tablo_vias_codvia[$j].">Modificar</a></td>";
merci a vous deux c'est simpa



un jour se sera a moi de vous aider

mais c'est pas pour demain car le chemain du php et long et difficil mais j'y arriverait
teen6517 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h05.


 
 
 
 
Partenaires

Hébergement Web