[PHP] Selectionner les derniers champs

Fermé
elmarokinho - 18 avril 2008 à 09:43
elmarokinho Messages postés 58 Date d'inscription vendredi 18 janvier 2008 Statut Membre Dernière intervention 6 février 2009 - 18 avril 2008 à 10:26
Bonjour,
pour le sujet de mon stage je dois récupérer la fini d'une chaine.
j'avais fait :
$new_result = substr($result,11,strlen($result ));  

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 :

//recherche dans le tableau 1
$result = array_search($hex, $array1);

// on retire les 11 premiers caractères de la chaine
$new_result = substr($result,11,strlen($result )); 
// on y ajoute un autre prefixe
$bridge = substr_replace($new_result, '17.4.3.1.2.', 0, 0) ;
//recherche du n° de bridge
$result_bridge = $array2[$bridge];


merci beaucoup pour votre aide

1 réponse

elmarokinho Messages postés 58 Date d'inscription vendredi 18 janvier 2008 Statut Membre Dernière intervention 6 février 2009 4
18 avril 2008 à 10:26
oui en fait pour la premiere etape j'ai fait comme cela :

//recherche dans le tableau 1
$result = array_search($hex, $array1);
//On garde les 6 derniers champs
$ary_orig = explode('.', $result);
$ary_dest = array_slice($ary_orig, -6);
$str_dest = join('.', $ary_dest);


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
0