Php et concaténation de caractéres

Petit nouveau ! | 1 Messages

22 juil. 2009, 12:07

Bonjour a tous,

tout nouveaux tout frais sur le forum...

actuellement je suis entrain de travaillé sur un module à fin de vérifier les numéro de siret que l'entreprise m'a fourni a travers un formulaire de contacte.

Les numéros de siret, je les récupère dans une variable à partir de la base $fech[2] en varchar45 (la routine quoi... :/ ) et c'est des numeriques qui sont composé de 14 caractères exemple ($siret=498703438000xx)

la problématique que je rencontre c'est que souvent les clients communique les numéros sous différents formats du grenre ($siret=498 703 438 000xx) ou ($siret=498-70-34380-0016)...
alors que ce qui compte pour moi c'est juste Récupérer les 9 premiers caractéres de la chaine siret du genre $var=498703438 (sans espace, sans _ ou -) a fin de poursuivre la suite de mon script et générer la suites des informations voulu...


il y a t il une fonction, ou une méthode, ou un tutoriel que je pourrai avoir a fin d'éclairer mon ignorance dans le monde impitoyable du dev...

on m'a parlé d'expression réguliére...

qu'une ame généreuse me vient en aide....

Merci

Mammouth du PHP | 1511 Messages

22 juil. 2009, 12:43

Boarf, un simple
$siret = str_replace(array('_', ' ', '-', $siret_original);
devrait suffire je pense.
Après, pour récuperer les 9 premièrs chiffres, fais un substr() dessus ;)
Voila, c'est tout je pense.

Eléphant du PHP | 65 Messages

22 juil. 2009, 13:21

Avec une expression régulière ?
Alors peut-être :
$siret = substr(preg_replace('/[^0-9]*/','',$siretFourni),0,9);
Fred

Mammouth du PHP | 1511 Messages

22 juil. 2009, 14:31

Avec une expression régulière ?
Alors peut-être :
$siret = substr(preg_replace('/[^0-9]*/','',$siretFourni),0,9);
Fred
Quid des performances entre un str_replace et un preg_replace, surtout pour un si petit traitement ? Nein ?

Eléphant du PHP | 65 Messages

22 juil. 2009, 15:13

Et si un client avait idée de saisir son siret sous la forme $siret=498.70.34380.0016,
qui est-ce qui va devoir faire des modifications dans son code ?
Fred

Mammouth du PHP | 1511 Messages

23 juil. 2009, 00:38

Et si un client avait idée de saisir son siret sous la forme $siret=498.70.34380.0016,
qui est-ce qui va devoir faire des modifications dans son code ?
Fred
Vu sous cet angle là, il est vrai que c'est une solution :)

Invité
Invité n'ayant pas de compte PHPfrance

28 juil. 2009, 16:59

Au début j'étais parti pour faire la chose en utilisant les expressions régulière... mais vu que j'étais vite fait largué, je suis passé par la première méthode en substr

mon code ça donne ça:
				$requete="SELECT * FROM `Clientsite` where langue = 'Francais'";
				$qrequete=mysql_query($requete);

						while ($frech= mysql_fetch_array($qrequete))
						{		
						

  echo "<tr>";
echo"<td><div align='center' class='style3'>$frech[1]</div></td>";
$siret_originale=$frech[2];
$bannir = array(" ", "-", "_",".");
$siret = str_replace($bannir, "", $siret_originale);


echo"<td><div align='center' class='style3'>$siret</div></td>";

$rest = substr("$siret", 0, -5);
echo "<td align='center'><a href='http://verif.fr/comptage_siren.php?siren_recherche=$rest&x=63&y=6&nom=&nom2=&prenom=&adresse=&cp=&choix_region=&choix_naf=&tel='><img src='images/ident.png' border='0'></a></td>";;