onction préparation des données à afficher avec décryptage et / ou anonymisation
 * @param int $usager_id id de l'usager // plus besoin
 * @param string $usager_texte
 * @param int $usager_service service de l'usager
 * @param string $lien lien ou vide
 * @param string $style style pour le lien ou vide ex: "color:white"
 * @param string $title titre pour le title ou vide ex: "mon titre"
 * @param bool $remplacer pour remplacer ou pas le texte $usager_texte par XXXXXX  
 * @return texte anonymisé et/ou décrypté
 */

function affiche($usager_texte, $usager_service, $lien = NULL, $style = NULL, $title = NULL, $remplacer = TRUE)
{

    //Personnel connecté à anonymiser 0 ou 1 
    if (!isset($_SESSION["personnel_anonymiser"]) or $_SESSION["personnel_anonymiser"] == 1)
    {
        $personnel_anonymiser = 1;
    } else
    {
        $personnel_anonymiser = 0;
    }
    //mise en array des services du personnel
    $tab_personnel_services = explode(",", $_SESSION["services"]);
    //decrype texte
    // $usager_texte = f_decrypt($usager_texte);  // a decommenter quand cryptage actif


    $nouv_texte = $usager_texte;
    //preparation du code du style
    if ($style)
    {
        $style ='style="'. $style. '"';
    } else
    {
        $style = '';
    }
    //preparation du code du title
    if ($title)
    {
        $title = 'title="'. $title. '"';
    } else
    {
        $title = '';
    }
    //Anonymisation si usager pas dans service personnel et/ou si anonymisation avtivé dans sa fiche
    if (!in_array($usager_service, $tab_personnel_services))
    {
        if ($remplacer)
        {
            $nouv_texte = "XXXXX";
        }
    }
    // si anonymisation activé dans sa fiche
    elseif ($personnel_anonymiser)
    {
        if ($remplacer)
        {
            $nouv_texte = "XXXXX";
        }
        if ($lien)
        {//affiche un lien ou pas
            $nouv_texte = '<a href="'. $lien. '" target="_blank" '. $style.''. $title. '>'. $nouv_texte. '</a>';
        }
    } else
    {
        if ($lien)
        {//affiche un lien ou pas
            $nouv_texte = '<a href="'. $lien. '" target="_blank" '. $style.''. $title. '>'. $nouv_texte. '</a>';
        }
    }
    if (trim($usager_texte) == "")
    {
        $nouv_texte = "";
    }
    return $nouv_texte;
}

/*
 * Fonction decodage utf8 si nécessaire
 * @param string $texte texte à éventuellement decoder
 * @return texte decodé iso ou même texte utf8
 */

function testutf8($texte)
{

    if (file_exists($_SERVER['DOCUMENT_ROOT']. '/encode_utf8.txt'))
    {
        $nouveau_texte = $texte;
    } else
    {
        if (!detectUTF8($texte))
        {
            $nouveau_texte = utf8_encode($texte);
        } else
        {
            $nouveau_texte = $texte;
        }
        if (CLIENT == "GPA")
        {
            $nouveau_texte = $texte;
        }
    }
    return trim($nouveau_texte);
}

function detectUTF8($string)
{
    return preg_match('%(?:
        [\xC2-\xDF][\x80-\xBF]        # non-overlong 2-byte
        |\xE0[\xA0-\xBF][\x80-\xBF]               # excluding overlongs
        |[\xE1-\xEC\xEE\xEF][\x80-\xBF]{2}      # straight 3-byte
        |\xED[\x80-\x9F][\x80-\xBF]               # excluding surrogates
        |\xF0[\x90-\xBF][\x80-\xBF]{2}    # planes 1-3
        |[\xF1-\xF3][\x80-\xBF]{3}                  # planes 4-15
        |\xF4[\x80-\x8F][\x80-\xBF]{2}    # plane 16
        )+%xs', $string);
}

/*
 * récupère contenu d'un fchier executé avec curl
 * @param string $url texte chemin absolu du fichier
 * @return texte resutlat script/fichier
 */

function curl_get_contents($url)
{
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
    curl_setopt($ch, CURLOPT_COOKIESESSION, true);
    curl_setopt($ch, CURLOPT_COOKIE, session_name(). '='. session_id());
    session_write_close();
    $data = curl_exec($ch);
    curl_close($ch);
    return $data;
}

/**
 * Permet d'appeler un service REST en Curl
 * @param str 	$method 	POST, PUT, GET etc
 * @param str 	$url 		adresse web
 * @param array 	$data 		array("param" => "value") ==> index.php?param=value
 * @return json
 * */
function callRest($method, $url, $data = false)
{

    $curl = curl_init();

    switch ($method)
    {
        case "POST":
            curl_setopt($curl, CURLOPT_POST, 1);

            if ($data)
                curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
            break;
        case "PUT":
            curl_setopt($curl, CURLOPT_PUT, 1);
            break;
        default:
            if ($data)
                $url = sprintf("%s?%s", $url, http_build_query($data));
    }

    // Optional Authentication:
    curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
    curl_setopt($curl, CURLOPT_USERPWD, "username:password");

    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

    $result = curl_exec($curl);

    curl_close($curl);

    return $result;
}

/*
 * Fonction escape les caractères spéciaux pour insertion mysql
 * @param string $value texte "échapper"
 * @return texte "echappé"
 */

function escape($value)
{
    $search = array("\\", "\x00", "\n", "\r", "'", '"', "\x1a");
    $replace = array("\\\\", "\\0", "\\n", "\\r", "\'", '\"', "\\Z");

    return str_replace($search, $replace, $value);
}

function debug()
{
    $trace = debug_backtrace();
    $rootPath = dirname(dirname(__FILE__));
    $file = str_replace($rootPath, '', $trace[0]['file']);
    $line = $trace[0]['line'];