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 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89
| <?php
function recursive_readdir ($dir)
{
$dir = rtrim ($dir, '/'); // on vire un eventuel slash mis par l'utilisateur de la fonction a droite du repertoire
if(is_dir ($dir)) // si c'est un repertoire
{
$dh = opendir ($dir); // on l'ouvre
}
else
{
echo $dir, ' n\'est pas un repertoire valide'; // sinon on sort! Appel de fonction non valide
exit;
}
while (($file = readdir ($dh)) !== false )//boucle pour parcourir le repertoire
{
if($file !== '.' && $file !== '..')
{
$path =$dir.'/'.$file; // construction d'un joli chemin...
if (is_dir ($path)) //si on tombe sur un sous-repertoire
{
recursive_readdir ($path); // appel recursif pour lire a l'interieur de ce sous-repertoire
}
$path_parts = pathinfo($path);
if($path_parts['extension'] == "jpg" OR $path_parts['extension'] == "JPG" )
{
// envoie les images dans la base
inserer_database_exif($path);
}
}
}
closedir ($dh); // on ferme le repertoire courant
}
//---------------------------------------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------------------------------------
function inserer_database_exif($chem_image)
{
$racine = $_SERVER['DOCUMENT_ROOT'];
include($racine . '/inclusion/connect_pdo_v3.php');
//Récupèration des informations de l'image
$tab_info = exif_read_data($chem_image,FILE);
//si il a quelque chose dans le datetime photo
if(!empty($tab_info['DateTimeOriginal']))
{
$datetime = new DateTime($tab_info['DateTimeOriginal']);
$newdate = $datetime->format('Y-m-d H:i:s');
/* Cherche dans tout les points de la balade, le point le plus proche*/
$sql_trouver_point = $bdd->prepare('SELECT a.id_fichier_gps, MIN(id_coord_gps) AS id_coord_gps'
. ' FROM pevtt_coordonnee_gps a'
. ' LEFT JOIN pevtt_fichier_gps_avec_article b ON a.id_fichier_gps = b.id_fichier_gps'
. ' WHERE coord_gps_date >= ?'
. ' AND id_article = ?');
if(!empty($_POST['id_prochain_article']))
{
$id_article = intval($_POST['id_prochain_article']);
}
else
{
$id_article = intval($_POST['id_article_a_modifier']);
}
$sql_trouver_point->execute(array($newdate,$id_article));
$tab_trouver_point = $sql_trouver_point->fetch();
$pieces = explode("/", $chem_image);
$nom_photo = end($pieces);
$chem_image = str_replace($_SERVER['DOCUMENT_ROOT'],"",$chem_image);
$id_pt_gpx = intval($tab_trouver_point['id_coord_gps']);
$id_fichier_gps = intval($tab_trouver_point['id_fichier_gps']);
$id_photo_gps = mt_rand();
$sql_update_pt_gpx = $bdd->prepare('INSERT INTO pevtt_photo_gps (id_fichier_gps,id_coord_gps,id_photo_gps,photo_gps_nom,photo_gps_url)
VALUES(:id_fichier_gps,:id_coord_gps,:id_photo_gps,:photo_gps_nom,:photo_gps_url)');
$sql_update_pt_gpx->execute(array(':id_fichier_gps' => $id_fichier_gps,
':id_coord_gps' => $id_pt_gpx,
':id_photo_gps' => $id_photo_gps,
':photo_gps_nom' => $nom_photo,
':photo_gps_url' => $chem_image
));
}
return $resultat;
}
//appel de la fonction
recursive_readdir ($racine.'/upload/articles/images/'.$fsb->userdata('u_id').'/'.$id_type_article.'/'.$id_article.'/'); ?> |
Partager