Bonjour,

J'extrai le contenu d'une page distante dans un document txt.

Je souhaite extraire uniquement les ip et leurs ports...

Le problème est que le contenu de cette page change constemment. Une fois les ip+ port sont sous le format:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
<td>128.220.247.29</td><td>3128</td></tr><tr><td>130.136.254.21</td><td>3124</td>
et d'autres fois sous le format:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
td&gt;128.220.247.29&lt;/td&gt;&lt;td&gt;3128&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;130.136.254.21&lt;/td&gt;&lt;td&gt;3124&lt;/td&gt;
Du coup, je ne sais pas trop comment faire mon regex...J'ai fait:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
  "#[0-9]{0,3}\.[0-9]{0,3}\.[0-9]{0,3}\.[0-9]{0,3}[</td><td>|&lt;/td&gt;&lt;td&gt;][0-9]{0,5}#i",
Mais cela ne semble pas fonctionner...et étant donné qu'il y a 2 choix, je ne sais pas comment faire le split...

Merci de m'aider...

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
<?php
  // extraction ip
  $pattern = preg_match_all(
  "#[0-9]{0,3}\.[0-9]{0,3}\.[0-9]{0,3}\.[0-9]{0,3}[</td><td>|&lt;/td&gt;&lt;td&gt;][0-9]{0,5}#i",
          $pattern,
	      $text,
          $match2
      );
if ($pattern) 
{
foreach($match2[0] as $resultat) 
{
 
list($ip, $port) = split("</td><td>", $resultat);
 
    echo "Extraction : ", $resultat, "\n <br>";    
    echo "dont l ip est: ", $ip, "\n";
    echo "et le port : ", $port, "\n\n <br><br>";
?>