/**
 * Collectez des images à distance
 * @param string $url adresse du fichier distant
 * @param string $filename Le nom du fichier enregistré (s'il est vide, il s'agit d'un nom de fichier généré aléatoirement, sinon c'est le nom du fichier d'origine)
 * @param array $fileType types de fichiers autorisés
 * @param string $dirName Le chemin où le fichier est enregistré
 * @param int $type Comment obtenir des fichiers à distance
 * @return json Renvoie le nom du fichier et le chemin d'enregistrement du fichier
 */
fonction download_image($url, $fileName = '', $dirName, $fileType = array('jpg', 'gif', 'png'), $type = 1)
{
    si ($url == '')
    {
        renvoie faux ;
    }

    // Récupère le nom de fichier d'origine du fichier
    $defaultFileName = nom de base($url);

    // Récupère le type de fichier
    $suffixe = substr(strrchr($url, '.'), 1);
    if (!in_array($suffix, $fileType))
    {
        renvoie faux ;
    }

    //Définit le nom du fichier après l'enregistrement
    $nomfichier = $nomfichier == '' ? temps() . rand(0, 9) . '.' . $suffixe : $defaultFileName ;

    // Récupère les ressources du fichier distant
    si($type)
    {
        $ch = curl_init();
        $délai d'attente = 30 ;
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
        $fichier = curl_exec($ch);
        curl_close($ch);
    }
    sinon
    {
        ob_start();
        readfile($url);
        $fichier = ob_get_contents();
        ob_end_clean();
    }

    //Définir le chemin d'enregistrement du fichier
    $nomrép = $nomrép ;
    si (!file_exists($dirName))
    {
        mkdir($dirName, 0777, vrai);
    }

    // sauvegarde du fichier
    $res = fopen($dirName . '/' . $fileName, 'a');
    fwrite($res, $file);
    fclose($res);

    tableau de retour (
        'nomfichier' => $nomfichier,
        'saveDir' => $dirName
    );
}