Commencer la recherche au rang 'n' de la chaine - PHP - Programmation
Marsh Posté le 18-04-2008 à 10:23:59
ok merci sa marche !
maintenant pour rechercher cette chaine dans le deuxieme tableau ?
je sais que pour préciser la fin d'une chaine c'est '$' mais si je recherche '$bridge$' (se finissant par la variabble bridge cela ne veut pas marché. En recherchant directement de cette maniere cela m'éviterait d'avoir a remplacer le début de la chaine qui change selon les pc et donc éviter les errreurs.
merci beaucoup
Marsh Posté le 18-04-2008 à 10:37:57
en fait le but de la manip c'est de récupérer le port d'un switch depuis l'adresse mac d'un pc.
on a 4 array de type :
Citation : [17.4.3.1.1.0.8.116.52.141.38] => Hex: 00 08 XX XX XX XX |
On part de l'adresse Mac pour arrivé a Fa0/xx ...
une fois que j'ai extrait la fin de la premiere ligne je dois le chercher dans le 2e tableau pour avoir l'index 14 que je rechercherait a la fin du 3e tableau etc ...
voila j'espere que c'est plus clair
sinon j'ai pensé a sa :
Code :
|
lool ... en fait je réduit la clé du tableau au 6 derniers champs et je recherche dans ce nouveau tableau mais sa ne marche pas !
Marsh Posté le 18-04-2008 à 18:10:57
Salut,
Si je comprends bien, tu pars de [17.4.3.1.1.0.8.116.52.141.38] pour arriver Fa0/14
Code :
|
A toi d'adapter le code si par exemple les tableaux changent ou si le préfixe des clés des tableaux changent
Marsh Posté le 23-04-2008 à 14:59:41
la derniere solution n'est pas envisageable car les prefixe changent selon la config du pc...
j'ai une fonction :
Code :
|
qui marche très bien dans la plupart des cas ...
mais si je recherche
Code :
|
Hex : FF FF FF FF FF a partir de 192.168.0.2
cela ne marche pas.. pourquoi?
Marsh Posté le 23-04-2008 à 15:11:08
ReplyMarsh Posté le 23-04-2008 à 15:25:20
Melendril a écrit : Euh... |
j'utilise la fonction comme ceci ( ailleurs sa marche ) :
Code :
|
une ligne de $array5 :
Code :
|
et
Code :
|
par exemple ...
mais c'est vraiment bizarre car l'adresse mac qui est le résultat de cette recherche est utilisée dans la suite du script et ça marche, mais si je veu l'afficher je ne peut pas ...
si tu as une idée...
Marsh Posté le 23-04-2008 à 15:47:49
elmarokinho a écrit : dans la suite du script et ça marche, mais si je veu l'afficher je ne peut pas ... |
??
montre nous un peu plus de code
PS: attention, dans ta regexp tu devrais faire :
Code : |
Marsh Posté le 23-04-2008 à 15:54:15
Si tes crochets font partie de la clé du tableau, forcément elle ne se finit pas par l'ip, mais par l'ip puis un crochet.
Marsh Posté le 23-04-2008 à 15:55:08
Regarde :
Code :
|
Je ne peux pas afficher $mac mais le reste s'exectue kan meme en utilisant le resultat ...
Si je copie la fonction seule dans un nouveau programme en mettant :
$ip_machine = "132.xxx.17.216";
-----fonction ----
echo $ip_machine;
echo $hex;
j'obtient :
Citation : 132.xxx.17.216 Hex: 00 1A xx xx xx xx |
Si je garde
$ip_machine = $_GET['ip_machine'];
et que je fais la MEME chose
j'ai :
Citation : 132.xxx.17.216 erreur d execution |
bizarre nan ?
Marsh Posté le 23-04-2008 à 15:56:20
sielfried a écrit : Si tes crochets font partie de la clé du tableau, forcément elle ne se finit pas par l'ip, mais par l'ip puis un crochet. |
non il ne font pas partie de la clé c'est pour l'affichage ... tkt j'ai essayé aussi en rajoutant un crochet ;-)
Marsh Posté le 23-04-2008 à 15:58:10
soju a écrit : dans ta regexp tu devrais faire :
|
Et pour ça , je vais testé mais ça ne change rien parce que les autre variables avec lesquelles sa marche comportent également des points... mais je vérifie on sais jamais.
[edit] encore la meme erreur
Marsh Posté le 23-04-2008 à 16:17:40
elmarokinho a écrit : Si je garde |
si tu ne changes que cette ligne, il y a forcément un problème dans ta variable get...
ptet un espace en trop ? essaye avec trim($_GET['ip_machine']);
elmarokinho a écrit : Et pour ça , je vais testé mais ça ne change rien |
si, ton code est plus propre vu que dans une regexp le . signifie n'importe quel caractère
Marsh Posté le 23-04-2008 à 16:19:34
elmarokinho a écrit : Je ne peux pas afficher $mac mais le reste s'exectue kan meme en utilisant le resultat ... |
je ne vois pas l'endroit ou tu essayes d'afficher $mac...
et c'est normal que le reste s'exécute vu que tu ne testes pas la valeur de retour de array_s
Marsh Posté le 23-04-2008 à 16:21:33
soju a écrit : je ne vois pas l'endroit ou tu essayes d'afficher $mac... |
Ligne 7 $hex est composé de la fin de $mac ...
puis $hex est utitilisé par la suite ...
Marsh Posté le 23-04-2008 à 16:22:50
ReplyMarsh Posté le 23-04-2008 à 16:27:45
ReplyMarsh Posté le 23-04-2008 à 16:32:56
Bizare ,
en remplaçant :
Code :
|
par :
Code :
|
Cela remarche ... pourquoi? je ne sais pas !
avec value="<?php echo $ip_machine; ?>" sa marche également ;-)
Marsh Posté le 23-04-2008 à 17:09:07
En même temps : <?php echo "$ip_machine"; ?> c'est pas correcte du tout, on ne met jamais une variable entre des guillemets.
Marsh Posté le 18-04-2008 à 10:04:37
Bonjour,
pour le sujet de mon stage je dois récupérer la fin d'une chaine.
j'avais fait :
il s'agit en fait d'une chaine de type :
17.4.3.1.1.0.31.91.233.220.142
ou je dois récupérer cette partie :
0.31.91.233.220.142
pour apres la rechercher dans :
17.4.3.1.2.0.31.91.233.220.142
Donc j'avais penser à supprimer le début a partir du 11e caractere puis rajouter un prefixe...
mais le probleme c'est que il s'agit d'une adresse de MIB( en réseau), donc ce script fonctionne parfaitement chez moi mais sur un autre pc ,
17.4.3.1.1.0.31.91.233.220.142
s'affiche en fait comme ceci
iso.4.3.1.1.0.31.91.233.220.142
donc le 11e caractere n'est plus le meme ,
c'est pourquoi je voudrais selectionner les 6 derniers champs puis rechercher dans le 2e tableau une chaine se finissant par la meme partie.
voila la partie de code qui correspond a ce que je fais actuellement :
merci beaucoup pour votre aide
Message édité par elmarokinho le 18-04-2008 à 14:27:23