/******************************************
// Remplacer les accents par des caractères simples
/******************************************/

function sans_accents($chaine)
{
    $cherche = "ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ";
    $remplace = "AAAAAAaaaaaaOOOOOOooooooEEEEeeeeCcIIIIiiiiUUUUuuuuyNn";

    return(strtr($chaine, $cherche, $remplace));
}

/******************************************
// Enlève les charactères spéciaux pour les noms de fichiers :

function txt_nospecialchars_file($txt)
{
    if ($txt) {
        return ereg_replace("[\\][/][:][*][?][\"][<][>][|]", "", $txt);
    }
}

/******************************************
// Créé le tableau contenant les repertoires et fichiers
/******************************************/
// @dir         Chemin d'accès du répertoire
// @recursif    Copie les sous-répertoire

function liste_repertoires($dir, $recursif = false)
{
    $dir = rtrim($dir, '/');    // Enlève le slash en trop si existant

    if (is_dir ($dir)) {    // Répertoire
        $dh = @opendir($dir);   // Ouverture
    } else {
        echo $dir, ' n\'est pas un repertoire valide';  // Erreur
    }

    // Lecture
   
    while (($file = @readdir($dh)) !== false ) {    // Boucle pour parcourir le repertoire
        if ($file !== '.' && $file !== '..') {          // Ignore les répertoires de navigation
            $path =$dir.'/'.$file;  // Construction du chemin

            if (@is_file($path)) {  // Fichier
                $tableau[$dir]['file'][] = $path;
            } elseif ($recursif) {  // Récursif accepté
                $tableau[$dir]['dir'][] = $path;
                $tabTmp = liste_repertoires($path); // Appel recursif pour lire a l'interieur de ce sous-repertoire
               
                // Fusionne les tableaux
                if (is_array($tabTmp) && is_array($tableau)) {
                    $tableau = array_merge($tableau, $tabTmp);
                }
            }
        }
    }

    @closedir ($dh);    // Ferme le répertoire courant
   
    if (isset ($tableau)) {
        return $tableau;    // Renvois
    }
}

/******************************************
// Copie du répertoire
/******************************************/
// On créé un répertoire de meme nom, puis on va chercher les fichiers, et on les copie.
// Si il y a des sous repertoires, appel recursif
// @source          Chemin du répertoire à copier
// @destination     Chemin du répertoire destination
// @arborescence    Liste des répertoires à copier
// @recursif        Copie les sous-répertoire

function repertoire_copie($source, $destination, $arborescence = array (), $recursif = false)
{
    // Initialisation
   
    // Liste des répertoires
    if (empty($arborescence)) {
        $arborescence = liste_repertoires($source, $recursif);
    }
   
    // Liste vide : Annule
    if (empty($arborescence)) { // Répertoires
        return NULL;    // Annule
    }

    // Transforme la source en tableau pour être en boucle
    if (!is_array($source)) {
        $source = array($source);
    }

    // Boucle de copie
   
    foreach ($source as $value) {
        if (!is_dir($destination.'/'.basename($value))) {   // Répertoire inexistant
            mkdir($destination.'/'.basename($value));   // Création du répertoire
           
            if (!empty($arborescence[$value]['file']) && isset($arborescence[$value]['file']) && is_array($arborescence[$value]['file'])) { // Fichier à copier existant
                // Copie des fichiers
                foreach ($arborescence[$value]['file'] as $fichier) {   // Boucle
                    copy($fichier, $destination.'/'.basename($value).'/'.basename($fichier));   // Copie
                }
            }
           
            // Sous-Répertoire
            if ($recursif && !empty($arborescence[$value]['dir']) && isset($arborescence[$value]['dir']) && is_array($arborescence[$value]['dir'])) {
                repertoire_copie($destination.'/'.basename($value), $arborescence[$value]['dir'], $arborescence);
            }
        }
    }
   
    return true;    // Tâche éffectuée
}


/******************************************
// Renvois l'extension de l'image suivant son type
/******************************************/
// @image   Nom de l'image

function image_filetype($image)
{
    switch ($image)
    {
        case IMAGETYPE_JPEG :   // Jpeg
            $extension = 'jpg';
            break;
        case IMAGETYPE_GIF :    // Gif
            $extension = 'gif';
            break;
        case IMAGETYPE_SWF :    // Flash exécutable
        case IMAGETYPE_SWC :    // Flash
            $extension = 'swf';
            break;
    }

    return $extension;   // Renvois l'extension
}


/******************************************
// Nettoie et renvois le numéro de téléphone en fixe ou mobile
/******************************************/
// @numero  Numéro de téléphone

function telephone($numero)
{
    if ($numero) {  // Numéro existant
        // Nettoyage
        $numero = str_replace('.','',$numero);
        $numero = str_replace('-','',$numero);
        $numero = str_replace(' ','',$numero);
        $numero = str_replace('(','',$numero);
        $numero = str_replace(')','',$numero);
        $numero = str_replace('+33','',$numero);

        // Numéro de portable ou fixe
        if (substr($numero, 0, 2) == '06' || substr($numero, 0, 1) == '6' || substr($numero, 0, 5) == '00336' || substr($numero, 0, 6) == '003306') {
            $table['fixe'] = '';
            $table['mobile'] = $numero;
        } else {    // Fixe
            $table['fixe'] = $numero;
            $table['mobile'] = '';
        }
   
        return $table;
    }
}


/******************************************
// Supprime les espaces en doublon
******************************************/
// @txt Texte à traiter

function espaces_supprime($txt)
{
    return preg_replace('/\s{2,}/', ' ', trim($txt));
}

/******************************************
// Conversion des dates FR <-> US
******************************************/
// @txt     Date à analyser

function x_txt_date_conv($txt)
{
    $partie = explode(" ", $txt);
    $date = explode("-", $partie[0]);

    return $date[2] . "-" . $date[1] . "-" .  $date[0] . " " . $partie[1];
}