Soit deux fichiers que j'arrive facilement à manipuler en php sauf sur une condition.

1.xml
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?xml version="1.0" encoding="utf-8"?>
<utilisateurs>
  <nom identite="pierre">
          <lieu>
		  <ip>169</ip>
	  </lieu>
	  <lieu>
		  <ip>10.113.22.2</ip>
	  </lieu>
  </nom>
  <nom identite="Geraldine">
          <lieu>
		  <ip>169.158.50.1</ip>
	  </lieu>
	  <lieu>
		  <ip>127</ip>
	  </lieu>
  </nom>
</utilisateurs>
et 2.xml

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
<?xml version="1.0" encoding="utf-8"?>
<connections>
  <nom identite="pierre">
		  <ip_con>169</ip_con>
		  <heure>31-01-2009 - 14:26</heure>
  </nom>	  
  <nom identite="ger">
		  <ip_con>127</ip_con>
		  <heure>31-01-2009 - 14:52</heure>
  </nom>	
</connections>
Voici un script php qui est censé comparer si une adresse IP est commune dans les deux fichiers xml

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
$i=0; 
$utilisateurs= simplexml_load_file('2.xml');
foreach ($utilisateurs->nom as $nom) { 
  $ip_con[$i]=$nom->ip_con;
  $i=$i+1;
}
 
$j=0; 
$connections= simplexml_load_file('1.xml'); 
foreach ($connections->nom as $nom) {
  echo $nom['identite']."<br />\n"; 
  foreach ($nom->lieu as $lieu) {
      $ip=$lieu->ip;
	  echo $ip_con[0]."<br />"; // pour le test 
	  echo $ip."<br />";        // pour le test
      if ($ip == $ip_con[$j]){
		  echo 'ip identique';
	  }  ;
  echo "<br />\n";
  }
  $j=$j+1;
}
Ayant deux ip identiques (valeur 169 pour Pierre dans les deux fichiers),
je devrais afficher un "ip identique"


Hélas en voici le résultat ;((

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
pierre
169
169
 
169
10.113.22.2
 
Geraldine
169
169.158.50.1
 
169
127
Après 3 heures de recherche, je m'en remets à vous