bonjour,je veux lister le contenu d'un répertoire qui contiens des livres avec des titres en arabes et j'ai obtenu que des point d'interrogation ???????? je ne sais pas comment régler ça help svp
bonjour,je veux lister le contenu d'un répertoire qui contiens des livres avec des titres en arabes et j'ai obtenu que des point d'interrogation ???????? je ne sais pas comment régler ça help svp
Salut,
question déjà posée plein de fois.
Problème d'encodage, regarde ce fil
mais c'est pas résolu je l'ai déjà vu
Si tu ne nous donnes pas plus de détail sur ton code, ton serveur, ton résultat, il est impossible de t'aider.
Si tu avais bien lu le sujet donné tu aurais pu voir par exemple que le système du serveur est un point important.
voici le code
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
16
17 $dirname = 'livres/culture generale'; $dir = opendir($dirname); while($file = readdir($dir)) {header ('Content-type: text/html; charset=utf-8'); if($file != '.' && $file != '..' && !is_dir($dirname.$file)) { // $taille = filesize($dirname."/".$file); // $taille = round($taille / 1048576 * 100) / 100 . " Mo"; echo '<li><table><tr><td><img src="acueil_images/pdf.png" /></td><td><a href="'.$dirname."/".$file.'" ><strong> '.$file." "//.$taille?></strong> </a></td></tr></table></li> <?php ; } } closedir($dir); ?>
Bonjour,
Je viens de tester avec cela. Ça affiche les noms en arabe.
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
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 <?php $dirname = 'livres/culture generale'; $files_a = scandir ($dirname); $files_a = array_slice ($files_a, 3); $html_str = ''; $html_str .= '<table>' . "\n"; foreach ($files_a as $key => $val) { $taille = filesize($val); $taille = round(($taille / 1048576 * 100) / 100, 2); $taille_ascii = $taille . " Mo"; $taille_utf8 = "Mo " . $taille; $html_str .='<tr><td><li><img src="acueil_images/pdf.png" /></td>' . "\n"; $html_str .= '<td>'; $html_str .= '<a href="' .$dirname . '/' . $val . '">' . "\n"; $html_str .= '<strong>'; if (mb_detect_encoding($val) == 'ASCII') { $html_str .= $val . " " . $taille_ascii; } else { $html_str .= $taille_utf8 . " " . $val; } $html_str .= '</strong>' . "\n"; $html_str .= '</a></li></td></tr>' . "\n"; } $html_str .= '</table>' . "\n"; print $html_str; ?>
Il est inutile de refaire ici la même discussion que dans l'autre sujet.
Il faut que tu repondes aux questions posées.
nn ça marche pas pour moi toujours les points d'interro ????????,
Tu as essayé cela : les carracteres arabes s'affichent comme des points d'interrogations ?
Autrement, regarde l'encodage des caractères du navigateur, qui doit être en UTF8.
je pense que le probleme n'est pas dans l'encodage parceque j'utilise une base de données qui contient du texte arabe mais ca marche bien grace a deux instruction speciales de mysql
charset=windows-1256 avec les deux instructionmais pour le readir() j'ai trouvé aucun moyen
Code : Sélectionner tout - Visualiser dans une fenêtre à part mysql_query("SET NAMES cp1256");mysql_query("set charaset set cp1256");
J'ai testé ton code chez moi, il fonctionne. (j'ai juste créé un fichier avec un nom trouvé sur le forum : عربية)
Concernant l'encodage du navigateur, si je le met en windows-1256,
le nom de fichier عربية devient ط¹ط±ط¨ظٹط©
Je ne connais pas encore mysql...
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager