gpenverne gpenverne
Penverne Gregoire
Articles, codes sources
Actualites Web
Webmaster freelance
Statistiques Gregoire Penverne
Outils PHP en ligne
Livres - Informatique


Twittez cet article!

Php-MySQL - Extraire les adresses emails contenues dans toutes les bases de données accessibles.

Catégorisé dans : #Sources PHP


Grégoire Penverne Par Grégoire Penverne
Le 25/02/2010
467 lectures



Twitter cet article
Deel this! Deeler cet article
Poster sur Facebook
Partager sur Del.icio.us Poster sur Del.icio.us
Digg it! Digg it!
Votez sur wikio !


Fichier joint :



Mysql

  

Adresses

  

Emails

  

Toutes

  

Bases

  

Tables

  

Tableau

  

}   

  

Catégories


Autres Articles

Ce script vous permet de parcourir toutes les bases de données mysql auxquelles vous accès et de les parcourir pour en extraire toutes les adresses emails contenues dans chaque table de celles-ci.

Vous trouverez le script dans l'archive zip attachée à cet article

<?php
/********************************************
    @2010 http://gregoire-penverne.fr
    Extraire toutes les adresses emails de toutes les tables
    de toutes les bases d'un serveur mysql
    (quand on en a l'accès)

**********************************************/

// Le script risque d'être long si vous avez
// beaucoup de bases et de tables, donc on supprime la limite d'éxécution.
set_time_limit(0);



           
            // Connexion à mysql
            $serveur_sql = '127.0.0.1';
            $user_sql = 'user_mysql';
            $mdp_sql = 'mot de passe mysql';
            $link = mysql_connect("$serveur_sql","$user_sql ","$mdp_sql")     or die("Erreur de connexion");
           
           
            // Notre array $bases contiendra le nom des bases de données
            $bases = array();
           
            // Notre array $mails contiendra les adresses emails obtenues
            $mails =array();
           
            // On récupère la liste de toutes les bases mysql auxquelles on a accès
            $db_list = mysql_list_dbs($link);

           
           
            // On parcourt le résultat
            while ($row = mysql_fetch_object($db_list)) {
                    // On exclut les bases information_schema et mysql, qui ne contiennent que des informations
                    // uniquement utiles à mysql (et pas à nous ^^)
                     if($row->Database!='information_schema' && $row->Database!='mysql')
                    // On ajoute la base dans le tableau bases
                    $bases[] = $row->Database;
            }

            // On parcourt toutes les bases obtenus précédemment.
            foreach($bases as $base){
                // Requete mysql permettant de récupérer toutes les tables de la base courante
                $result=mysql_list_tables($base,$link);
                // $tables sera le tableau qui contiendra les tables trouvées.
                $tables=false;
                $tables= array();
               
                // On récupère les tables
                while ($row = mysql_fetch_row($result)) { $tables[] = $row[0];}
               
                    // On parcourt les tables obtenues
                    foreach($tables as $table){
                        // On exécute notre recherche dans notre table et base courante
                        $r=dosql("select * from $base_$table");
                            while($s=mysql_fetch_array($r)){
                                if(is_array($s)){
                                    foreach($s as $value){
                                        // Si notre résultat est une adresse email valide, alors
                                        // On l'incrémente dans notre tableau $mails
                                        if(is_email($value)){
                                            // Pour éviter les doublons, on vérifie que l'adresse email
                                                // n'est pas déjà enregistrée dans notre tableau
                                            if(!isset($mails[$value])){
                                                    $mails[$value]=$value;                                   
                                            }
                                        }
                                    }
                                }
                            }
                       
                    }
            }
       
     // Au final , on a donc un tableau $mails     qui contient l'ensemble des mails présents dans les bases de données qu'on a trouvé.
     // On peut donc les afficher :
     print_r($mails)
     
     
     // Bien entendu, ce tableau pourrait être traité avec un mail() par exemple.
     ?>




Gpenverne en RSS Pour ne manquer aucun article, abonnez-vous !

Discussions / Réactions