Lister avec caractères accentués, page php

Lister avec caractères accentués, page php - PHP - Programmation

Marsh Posté le 29-06-2008 à 10:42:35    

Bonjour,
j'ai trouvé ce code (il y a quelques temps) qui permet de lister le contenu d'un répertoire quelques soient les extensions (et ceci en ligne sur un ftp). Il est intégré à une page .php.
Il marche très bien mais, ayant été écrit par un anglo saxon, il ne prend pas en charge les caractères accentués (é è à).
 
Est-il possible de l'éditer afin qu'il le fasse ?
 
Merci de votre aide  :jap:  
 
 
 
 
voici le code en question:
 
 
<title>Coupures</title>
<script language="JavaScript" type="text/JavaScript">
<!--
 
 
 
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#" )!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}
//-->
</script>
<body bgcolor="#000000" text="#FFFFFF" link="#FFFFFF" vlink="#666666" alink="#66FF00">
<table width="35%" border="0" align="center" cellpadding="4" cellspacing="4">
  <tr>  
    <td>&nbsp;</td>
    <td><font size="5"><font size="5"><font color="#ccffcc" size="6"><strong>COUPURES  
    </strong></font></font></font></td>
  </tr>
</table>
<hr>
<div align="center">
  <p>&nbsp;</p>
</div>
<table width="40%" height="49" border="0" align="center" cellpadding="4" cellspacing="4" bgcolor="#191919">
  <tr>  
    <td width="28%" align="center" valign="middle"> <p align="center">&nbsp;</p></td>
    <td width="5%" align="center" valign="middle">&nbsp;</td>
    <td width="67%" align="center" valign="middle"><div align="left"><font size="2">Tri  
        : A-Z / Z-A / Ancien / R&eacute;cent</font></div></td>
  </tr>
  <tr>  
    <td colspan="3" align="center" valign="middle"><hr>  
      <?php
   
$arrayFichiers=array();
$ordre=$_GET['tri'];
$path='./';
$handle=opendir($path);
   
                                                                                                                 
   
while (false != ($file = readdir($handle))) {
   
                                                                                                                 
 if (substr($file, 0, 1) != '.' && strtoupper(substr($file,-3)) != 'PHP' ) {
       $arrayFichiers[$file]=filemtime($path.$file);
         }
}
if($ordre == 'alpha') ksort($arrayFichiers);
elseif($ordre == 'alpha2') krsort($arrayFichiers);
elseif($ordre == 'modif') asort($arrayFichiers);
elseif($ordre == 'modif2') arsort($arrayFichiers);
else ksort($arrayFichiers);
   
foreach($arrayFichiers as $nom => $dateDeModification) {
echo '<a href="'.$path.$nom.'">'.$nom.'</a><br />';
}
   
?>
      <hr></td>
  </tr>
</table>
<p align="center">&nbsp;</p>


Message édité par iboll le 29-06-2008 à 10:43:30
Reply

Marsh Posté le 29-06-2008 à 10:42:35   

Reply

Marsh Posté le 30-06-2008 à 16:54:35    

a priori ça marche avec les accents aussi, sauf si l'extension du fichier est .php ou si le fichier commence par un .
 
et au passage, le check de l'extension est faux, le parcour du folder aussi.  

Reply

Marsh Posté le 03-07-2008 à 16:55:58    


 
Le fichier est bien en .php ! Que faire dans ce cas ?
 
Qu'est-ce que le check de l'extension et le parcours du folder ?  
Tu aurais une correction à ce propos ?
 

Reply

Marsh Posté le 12-07-2008 à 08:13:00    

ha heuu désolé j'avais pas vu le drapal.
 
Donc c'est tout simple, tu remplaces cette ligne :
 

Code :
  1. if (substr($file, 0, 1) != '.' && strtoupper(substr($file,-3)) != 'PHP' ) {


par  

Code :
  1. if (substr($file, 0, 1) != '.' ) {


bon la, pour une obscure raison tu ne verras pas les fichiers qui commences par un point. C'est le cas des fichiers cachés unix et des fameux . et ..
donc tu peux carrément supprimer cette ligne, les . et .. te serviront à naviguer si ton appli est bien faite.
N'oublie pas de retirer le "}" si tu supprime toute la ligne.

Reply

Marsh Posté le 16-10-2008 à 11:42:54    

Merci de ton aide mais ça ne marche toujours pas, j'obtiens une erreur 404 !

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed