IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

lecture de fichiers txt et utilisation de boucles


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 152
    Par défaut lecture de fichiers txt et utilisation de boucles
    Bonjour,

    J'ai un petit probleme avec mon script php.

    J'ai un fichier adresse.txt contenant uniquement des adresses de type:

    16372887.html
    89354728.html

    Je dois réutiliser chaque ligne avec file_get_contents de facon à faire:

    file_get_contents("http://www.xxxxxx.com/load_elite_16372887.html");
    file_get_contents("http://www.xxxxxx.com/load_elite_89354728.html");

    Ensuite je dois grace à mon regex, extraire les adresses ip avec leurs ports de chaque page, et les entré dans ma base...

    Le script ne me renvoie aucune erreur et apparemment il arrive à lire le contenu de mon fichier texte, mais après, ca coince...car rien n'est inséré dans ma base...

    Meric pour votre aide...

    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    <?php 
    $fp =  file("adresse.txt");
     
    foreach($fp as $line) 
    {
          $res = preg_match_all(
          "#[0-9]{5,}\.html#i",
            $line,
            $matches
          );
    if ($res) 
    {
    foreach(array_unique($matches[0]) as $res) 
                     {
        echo "Extraction : ", $res, "\n <br>";
     
    	$text = file_get_contents("http://www.xxxxxx.com/load_elite_$res");
     
          // extraction ip
          $pattern = preg_match_all(
          "#[0-9]{0,3}\.[0-9]{0,3}\.[0-9]{0,3}\.[0-9]{0,3}</td><td>[0-9]{0,5}#i",
              $pattern,
    	      $text,
              $match2
          );
    if ($pattern) 
    {
    foreach($match2[0] as $resultat) 
    {
    include('../dbconnect.php');
     
    list($ip, $port) = split("</td><td>", $resultat);
     
    $insertBase = mysql_query("INSERT IGNORE INTO listeIp (Ipadress, port, InsertDate) VALUES ('$ip', '$port', now())") or die ('Erreur 
    
    SQL...veuillez contacter l\'administrateur'.mysql_error());   
     
        echo "Extraction : ", $resultat, "\n <br>";    
        echo "dont l ip est: ", $ip, "\n";
        echo "et le port : ", $port, "\n\n <br><br>";
                     }
    }
    }
    }
    }
    ?>

  2. #2
    Membre émérite
    Profil pro
    Assistant recherche bioinformatique
    Inscrit en
    Novembre 2007
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant recherche bioinformatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 877
    Par défaut
    Pourrait tu etre plus precis :
    Est ce que le programme entre bien dans la boucle ?
    Quel est le contenu de toutes tes variables au moment de la requete ?
    Que contient reellement ta requete ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 152
    Par défaut
    Bonjour,

    Alors j'ai tout d'abord ce script qui extrait de la page http://www.mapage.com/elite.html toutes les adresses du type 12345678.html et qui les insèrent dans un fichier texte.

    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
    <?php
    $content = file_get_contents('http://www.mapage.com/elite.html');
     
    if(false !== preg_match_all("#[0-9]{5,}\.html#i", $content, $matches)) {
     
    	if(is_array($matches[0]) && sizeof($matches[0])>0) {
    		$matches = array_unique($matches[0]);
    	}
     
    	$contenu = null;
     
    	foreach($matches as $i => $match)
    	       {
     
    		echo 'Extraction : ', $match, '<br/>'."\n";
    		$contenu .= $match."\n";
    	       }
    		   // On enregistre les données dans le fichier
        file_put_contents("malist.txt", $contenu);
    }
    ?>
    Une fois que cela est fait, je veux qu'un autre script récupère toutes les données du fichier texte afin d'ajouter les 12345678.html à mon adresse file_get_contents

    Puis je souhaite, grâce à mon regex, extraire les adresses ip avec leurs ports de la page et les insérer dans ma base.

    Voici le script entier:

    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
    <?php 
    $fp =  file("malist.txt");
     
    foreach($fp as $line) 
    {
     
       echo "Extraction : ", $line, "\n <br>";
     
      $text = file_get_contents("http://www.freeproxylists.com/load_elite_$line");
     
      // extraction ip
      $pattern = preg_match_all(
      "#[0-9]{0,3}\.[0-9]{0,3}\.[0-9]{0,3}\.[0-9]{0,3}</td><td>[0-9]{0,5}#i",
              $pattern,
    	      $text,
              $match2
          );
    if ($pattern) 
    {
    foreach($match2[0] as $resultat) 
    {
    include('../dbconnect.php');
     
    list($ip, $port) = split("</td><td>", $resultat);
     
    $insertBase = mysql_query("INSERT IGNORE INTO listeIp (Ipadress, port, InsertDate) VALUES ('$ip', '$port', now())") or die ('Erreur 
    
    SQL...veuillez contacter l\'administrateur'.mysql_error());   
     
        echo "Extraction : ", $resultat, "\n <br>";    
        echo "dont l ip est: ", $ip, "\n";
        echo "et le port : ", $port, "\n\n <br><br>";
    }
    }
    }
    ?>
    Actuellement, après avoir apporté des modification que j'ai ajoutées ci-dessus, cela m'affiche:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Warning: file_get_contents(http://www.mapage.com/load_elite_1212310544.html) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in /home/zeropr45/public_html/regex/mapage.php on line 115
    Pourtant si j utilise le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php 
     
    // Recuperation des données de l url
    $text = file_get_contents('http://www.mapage.com/load_elite_1212214934.html');
    echo"$text";
    ?>
    Cela me retourne bien:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <th>IP Address</th><th>Port Number</th></tr><tr><td>85.194.77.5</td><td>80</td></tr><tr><td>129.10.120.194</td><td>3128</td>
    D'ouvient mon problème?

  4. #4
    Membre émérite
    Profil pro
    Assistant recherche bioinformatique
    Inscrit en
    Novembre 2007
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant recherche bioinformatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 877
    Par défaut
    ta page http://www.mapage.com/load_elite_1212310544.html n'existe pas.
    La 2eme adresse elle existe.

    Retente ton scripte avec une adresse qui existe, ca devrait fonctionner.
    Du moins ne pas bloquer au get content

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 152
    Par défaut
    Effectivement... c'est que les urls changent apparemment tout le temps...!

    Merci en tout cas, ca fonctionne

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Lecture fichier .txt et utilisation des données
    Par halloumiali dans le forum AWT/Swing
    Réponses: 8
    Dernier message: 08/03/2012, 17h10
  2. [PC] [Visual Object Cobol] Lecture de fichier .txt
    Par vince3132 dans le forum Cobol
    Réponses: 7
    Dernier message: 14/03/2008, 13h43
  3. [Excel - VBA] lecture de fichier txt
    Par simstef dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 15/06/2007, 16h00
  4. Lecture de fichiers .geo et utilisation de pdetool
    Par benabdou dans le forum MATLAB
    Réponses: 1
    Dernier message: 08/05/2007, 08h59
  5. PL/SQL lecture/ecriture fichier txt
    Par stos dans le forum PL/SQL
    Réponses: 2
    Dernier message: 19/05/2006, 12h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo