Bonjour,

Je suis en train d'essayer de récupérer des informations d'un fichier texte.

J'essaye d'extraire de ce fichier texte, les adresses ip avec leurs ports avec un regex mais je n'y arrive pas...Je dois faire une erreur...

Voici le code présent dans mon fichier texte:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
<script type="text/javascript">e=9;j=8;x=7;a=2;n=5;d=0;s=6;v=1;l=3;i=4;</script>
<tr><td>
193.174.67.187<script type="text/javascript">document.write(":"+l+v+a+i)</script></td><td>May-27, 23:00</td></tr>
<tr><td>
91.90.17.205<script type="text/javascript">document.write(":"+j+d)</script></td><td>May-27, 23:01</td></tr>
 
etc...
Comme vous voyez, il faudra que je m'y prenne en 2 etapes en faisant d'abord l'extraction de tout ce qui est du type :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
91.90.17.205<script type="text/javascript">document.write(":"+j+d)
194.65.1.250<script type="text/javascript">document.write(":"+n+n+l)
Puis il faudra que je fasse remplacer les lettres par leurs chiffres correspondants...

J'ai développé le regex suivant mais visiblement il ne fonctionne pas car cela retourne toujours:"Aucune données à extraire!"...Si vous pouviez m'aider je vous en serai reconnaissant car je cale depuis hier aprem la dessus...

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
23
24
25
26
<?php 
//fichier dulequel les ip seront extraites
$fp =  file("test.txt");
 
foreach($fp as $line) {
$res = preg_match_all(
 
"/[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}<script type=\"text\/javascript \">document.write(\"[\ |:	]\"{1,2}[+a-x]{1,5})/i", 
    $line,
    $matches
);
if ($res) {
foreach($matches[0] as $res) {
    echo "Extraction : ", $res, "\n <br>";
    list($ip, $port) = split("[\ |:	]{1,2}", $res);
    echo "dont l ip est: ", $ip, "\n";
    echo "et le port : ", $port, "\n\n <br><br>";
 
}
}
else
{
echo'Aucunes données à extraire!';
}
}
?>