Bonjour,

Je souhaite récupérer une pièce jointe au format csv dans une boite d'un serveur exchange 2007.
La connexion est OK, mais je bloque sur la récupération d'un fichier. Je pense que cela est du à l'accent dans le nom du fichier reçu, car si je test avec la même pièce jointe (rename : suppression accent + re-envoi), je peux la récupérer et la sauvegarder sans pb sur le disque.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$structure = imap_fetchstructure($mbox,$msgno);
$attachments = get_attachments($structure);
foreach ($attachments as $k => $at) {
       	$filename = $export_dir.'id_'.$msgno.'_part_'.str_replace('.', '-', $at['part']).'_'.$at['filename'];
 	$content = imap_fetchbody($mbox, $msgno, $at['part']);
        if ($content !== false && strlen($content) > 0 && $content != '') {
                switch ($at['encoding']) {
                    case '3':
                    	$content = base64_decode($content);
                    break;
                    case '4':
                        $content = quoted_printable_decode($content);
                    break;
                }
		file_put_contents($filename, utf8_encode($content));
Le problème se pose avec

Code : Sélectionner tout - Visualiser dans une fenêtre à part
file_put_contents($filename, utf8_encode($content));
Quand le filename a un accent voilà l'erreur :

Warning: file_put_contents(c:/test/id_19_part_2_=?iso-8859-1?Q?r=E9sultat.csv?=) [function.file-put-contents]: failed to open stream: No error in C:\
Je ne sais pas trop comment traiter ce pb.

Merci d'avance pour votre aide.