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 du Club
    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
    Points : 65
    Points
    65
    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 éclairé
    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
    Points : 835
    Points
    835
    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 du Club
    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
    Points : 65
    Points
    65
    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 éclairé
    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
    Points : 835
    Points
    835
    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 du Club
    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
    Points : 65
    Points
    65
    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