OVH Cloud OVH Cloud

adresse ip formatee

5 réponses
Avatar
harry covert
Bonjour

REMOTE_ADDR donne l'adresse ip sous la forme
12.145.68.123

je voudrai cette adresse
012.145.068.123

pour avoir un nombre de caracteres egal à 15

merci pour vos idée.

5 réponses

Avatar
Morel david
$trouveUnNomDeVariableBienCon = Implode(".",REMOTE_ADDR);
foreach($trouveUnNomDeVariableBienCon as $cle =>
$trouveUnDeuxiemeNomDeVariableBienCon )
$trouveUnTroisièmeNomDeVariableBienCon[$cle] substr("000".$trouveUnNomDeVariableBienCon,0,3);
$trouveUnQuatriemeNomDeVariableBienCon = explode(".",
$trouveUnTroisièmeNomDeVariableBienCon);

un truc comme ça...

"harry covert" a écrit dans le message de news:
chroqg$cv9$
Bonjour

REMOTE_ADDR donne l'adresse ip sous la forme
12.145.68.123

je voudrai cette adresse
012.145.068.123

pour avoir un nombre de caracteres egal à 15

merci pour vos idée.


Avatar
Paul Delannoy
harry covert a écrit:
Bonjour

REMOTE_ADDR donne l'adresse ip sous la forme
12.145.68.123

je voudrai cette adresse
012.145.068.123

pour avoir un nombre de caracteres egal à 15


a) une sortie printf formatée ?
b) boucle sur les 4 éléments ip(i) avec ajout d'un 0 en tête si <100 et
d'un autre si <10 puis concaténation du tout ?
...

merci pour vos idée.
de nada


Avatar
P'tit Marcel


REMOTE_ADDR donne l'adresse ip sous la forme
12.145.68.123

je voudrai cette adresse
012.145.068.123


essaye toujours :

preg_replace(
array('`(?<!d)d{2}(?!d)`','`(?<!d)d(?!d)`'),
array('00$0','0$0'),
$IP
);

ou

preg_replace_callback(
'`d+`',
create_function(
'$trouve',
'return sprintf("%04d", $trouve[0]);'
),
$IP
);

voire :

$bouts=explode('.',$IP);
foreach($bouts as $bout) {
$bout=sprintf("%04d", $bout);
}
$IP=implode('.', $bouts);



(pas testé)

Avatar
Marc

preg_replace(
array('`(?<!d)d{2}(?!d)`','`(?<!d)d(?!d)`'),
array('00$0','0$0'),
$IP
);

ou

preg_replace_callback(
...


$bouts=explode('.',$IP);
...



quel talent !

Avatar
P'tit Marcel
Caramba, j'ai réussi à faire une faute à chaque fois.
Désolé Marc, le talent était un peu défaillant hier 3:-/


preg_replace(
array('`(?<!d)d{2}(?!d)`','`(?<!d)d(?!d)`'),
array('00$0','0$0'),
$IP
);


là il faut changer l'ordre du second tableau :

$IP = preg_replace(
array('`(?<!d)d{2}(?!d)`','`(?<!d)d(?!d)`'),
array('0$0','00$0'),
$IP
);



preg_replace_callback(
'`d+`',
create_function(
'$trouve',
'return sprintf("%04d", $trouve[0]);'
),
$IP
);


là il aurait fallu que je sache compter jusqu'à 3 :

$IP = preg_replace_callback(
'`d+`',
create_function(
'$trouve',
'return sprintf("%03d", $trouve[0]);'
),
$IP
);


voire :


c'est tout vu : le foreach est complètement tarte :

$bouts=explode('.',$IP);
foreach($bouts as $bout) {
$bout=sprintf("%04d", $bout);
}
$IP=implode('.', $bouts);


$bouts=explode('.',$IP);
foreach($bouts as $n=>$bout) {
$bouts[$n]=sprintf("%03d", $bout);
}
$IP=implode('.', $bouts);



(pas testé)


ben ça s'est vu !

a+
P'tit Marcel