Partage
  • Partager sur Facebook
  • Partager sur Twitter

Formater une chaine de 15 caractères

en X XX XX XX XXX XXX XX

10 juin 2009 à 20:11:14

Bonjour,

Pour une inscription par formulaire (pour devenir animateur), les internautes doivent saisir leur numero de sécurité sociale.
Le champ est limité à 15 caractères, et j'aimerais lorsque je recois le mail, qu'il s'affiche de la manière suivante : X XX XX XX XXX XXX XX au lieu de XXXXXXXXXXXXXXX ...
Pourvez vous m'aider ?
Merci d'avance =)
  • Partager sur Facebook
  • Partager sur Twitter
10 juin 2009 à 20:30:21

peut-être un preg_replace:
$chaine = preg_replace("#(\d)(\d{2})(\d{2})(\d{2})(\d{3})(\d{3})(\d{2})#", "$1 $2 $3 $4 $5 $6 $7", $numero);


mais il y a sans doute plus simple.
  • Partager sur Facebook
  • Partager sur Twitter
10 juin 2009 à 20:31:56

Normallement ce code fonctionne, fait en 4 minutes, peut-être imparfait, mais je te le donne quand même (à noter qu'il existe peut-être des fonctions PHP qui peuvent faire ce que tu demandes, mais ne les connaissant pas, je les code ^^ )

<?php
$num = '183494839504934';

function format_secu($num)
{
     $chaine = '';
     for($i=0; $i<15; $i++)
     {
          if( $i=='1' OR $i=='3' OR $i=='5' OR $i=='7' OR $i=='10' OR $i=='13' )
               $chaine .= ' '.$num[$i];
          else
               $chaine .= $num[$i];
     }
     return $chaine;
}
echo format_secu($num);
?>
  • Partager sur Facebook
  • Partager sur Twitter
10 juin 2009 à 20:34:32

:) Ah c'est super !
Merci a vous deux, j'ai pris celui de shaoling87, Merci infiniment !
  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
10 juin 2009 à 21:15:31

Il y a plus simple et normalement plus rapide pour le server :
<?php
$num = str_replace(' ', '', $num); // on enlève tous les espaces
$num = str_split($num, 2);  // on découpe la chaine en parties de 2 caractères
$num = implode(' ', $num); // et on rassemble avec des espaces entre chaque parties

// en résumé, ça donne ça :
$num = implode(' ', str_split(str_replace(' ', '', $num), 2));
?>
  • Partager sur Facebook
  • Partager sur Twitter
10 juin 2009 à 22:05:17

@berdes1
seulement un numéro de sécurité social français est composé de séries de 1,2 et 3 chiffres (même une lettre pour la corse, A ou B)
<?php
$num = '123456789101113';
$num = str_replace(' ', '', $num); // Au cas ou il y aurait déjà des espaces
if(strlen($num) == 15){
 list($sexe, $annee, $mois, $departement, $insee, $ordre, $cle) = sscanf($num, '%1d%2d%2d%2s%3d%3d%2d');
 echo $sexe.' '.$annee.' '.$mois.' '.$departement.' '.$insee.' '.$ordre.' '.$cle;
}
else
echo 'Ceci n\'est pas un numéro de sécutié social (15 caractères)';
?>

Ensuite ont peut pousser les tests plus loin, genre si $sexe est différent de 1 ou 2 (1=homme et 2=femme)...
  • Partager sur Facebook
  • Partager sur Twitter
Erreur PDO - Installation Wamp - Docs PHP et MYSQL.
31 janvier 2023 à 14:44:04 - Message modéré pour le motif suivant : Merci d’utiliser le bouton code pour inséré un code sur le forum


31 janvier 2023 à 15:34:57

Bonjour,

Le message qui suit est une réponse automatique activée par un membre de l'équipe de modération. Les réponses automatiques leur permettent d'éviter d'avoir à répéter de nombreuses fois la même chose, ce qui leur fait gagner du temps et leur permet de s'occuper des sujets qui méritent plus d'attention.
Nous sommes néanmoins ouverts et si vous avez une question ou une remarque, n'hésitez pas à contacter la personne en question par Message Privé.

Pour plus d'informations, nous vous invitons à lire les règles générales du forum

Déterrage

Citation des règles générales du forum :

Avant de poster un message, vérifiez la date du sujet dans lequel vous comptiez intervenir.

Si le dernier message sur le sujet date de plus de deux mois, mieux vaut ne pas répondre.
En effet, le déterrage d'un sujet nuit au bon fonctionnement du forum, et l'informatique pouvant grandement changer en quelques mois il n'est donc que rarement pertinent de déterrer un vieux sujet.

Au lieu de déterrer un sujet il est préférable :

  • soit de contacter directement le membre voulu par messagerie privée en cliquant sur son pseudonyme pour accéder à sa page profil, puis sur le lien "Ecrire un message"
  • soit de créer un nouveau sujet décrivant votre propre contexte
  • ne pas répondre à un déterrage et le signaler à la modération

Je ferme ce sujet. En cas de désaccord, me contacter par MP.

  • Partager sur Facebook
  • Partager sur Twitter

Moderateur forum || FAQ 3D || discord 3D francophone || OC Tweak script