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.
?>
Gpenverne

Gpenverne

Dév back, symfonien, adore bidouiller des machins pour faire des bidules, sans se poser la question de leur utilité...

Read More