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

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.  
<?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=mysql_query("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. ?>