Aller au contenu

Problème avec accent


Sujets conseillés

Posté

Bonjour,

Je mets une galerie en ligne avec photo et nom de la photo.

Seuleument voila dès que la photo a un mot avec accent la photo laisse place à une croix alors que le nom apparait correctement.

Voici le script que j'utilise


<script LANGUAGE="JavaScript">
table_photo = new Array;
table_noms = new Array;
table_type = new Array;

<?
$a = 0;
$handle = opendir("galerie");
while (($file = readdir())!=false) {
clearstatcache();
if($file!=".." && $file!=".")
{

// RECHERCHE DU FICHIER
echo "table_photo[$a] = 'galerie/$file';";

// RECHERCHE DU TYPE DE FICHIER
$file_type = strrchr($file, ".");
$file_type = str_replace(".", "", $file_type);
$file_type = strtoupper($file_type);
echo "table_type[$a] = '$file_type';";

// RECHERCHE DU NOM :
$file_name = strtolower($file);
$file_name = str_replace(".jpg", "", $file_name);
$file_name = str_replace(".jpeg", "", $file_name);
$file_name = str_replace(".gif", "", $file_name);
$file_name = str_replace(".png", "", $file_name);
echo "table_noms[$a] = '$file_name';";
$a++;
}
}
closedir($handle);
?>

function showing_photos(num)
{
if(document.getElementById)
{
diaporama_fin = "";
if(num!=0)
diaporama_fin += "<td height=20><p align=center><A HREF=# onClick='showing_photos("+(num-1)+");return(false)'><img border=0 src=leftarrow.png height=35></A></td>";
if(num!=(table_photo.length-1))
diaporama_fin += "<td height=20><p align=center><A HREF=# onClick='showing_photos("+(num+1)+");return(false)'><img border=0 src=rightarrow.png height=35></A></td>";
document.getElementById("affichage_photos").innerHTML = "<div align=center><center><table border=0 width=640 cellspacing=0 cellpadding=5 height=480><tr><td colspan=2 valign=middle width=100% bgcolor=#141414 height=20><table border=0 width=100% cellspacing=0 cellpadding=0><tr><td width=50%><font color=#808080> Vue : "+table_noms[num]+"</td><td width=50%></td></tr></table></td></tr><tr><td width=100% colspan=2 valign=middle height=360><table border=0 width=100% cellspacing=1 cellpadding=0 height=100%><tr><td width=100% bgcolor=#141414 height=360><center><img src='"+table_photo[num]+"' width=400 BORDER=0></center></td></tr></table></td></tr><tr>"+diaporama_fin+"</tr></table></center></div>";
}
}

window.onload = new Function("showing_photos(0)")
</SCRIPT>

Merci d'avance pour l'aide

Posté

Bonjour,

Il faut de toute manière éviter les noms de fichiers avec accent... Les OS sont de plus en plus laxistes à ce sujet, mais les espaces, accents, sont à éviter au maximum. Je te conseille donc d'enlever les accents de tes noms de fichiers.

Si tu veux, il existe des fonctions pour "nettoyer" une chaîne de caractère...

Posté

Ah mais oui mais voilà, je me demandais où était cette extraordinaire ressource, mais hélas, je n'étais pas tombé dessus.

Bon bah voilà webide67, tu es sauvé !

Posté

Pour enlever les accents, en perl, moi je fais ça:

my $t = NFD($string);
$t =~ s/\pM//g;

Ca veut dire: recode tout ça de telle façon que les caractères accentués soient codés comme un (ou plusieurs) accent(s) + la lettre "de base", puis vire tous les caractères qui sont des accents.

Je vous laisse transformer ça en php (hint: http://php.net/manual/en/class.normalizer.php ).

Jacques.

Posté

Bonjour,

Je ne souhaites pas supprimer les accents mais qu'ils apparaissent car en intitulé de photo, le chateau de mémé fait plus esthétique que le_chateau_de_meme. Comment puis je régler le problème?

Merci d'avance pour vos réponses

Posté

Par convention, on ne met pas d'accent dans les nom de fichiers sur le web, parce que les claviers étrangers ne peuvent les taper facilement.

Maintenant pour ton problème, si normalement, soit


// RECHERCHE DU FICHIER
echo "table_photo[$a] = ".utf8_encode("'galerie/$file';");

soit,


// RECHERCHE DU FICHIER
echo "table_photo[$a] = ".utf8_decode("'galerie/$file';");

devrais résoudre ton problème. Je dis sois, parce que sans accéder à ta page, je ne sais pas dans quel sens est ton problème d'encodage

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...