Page 1 sur 1

$file est un fichier et is_file($file) renvoie false ???

Posté : 01 nov. 2008, 14:58
par albat
Bonjour,

Migrant les innombrables fichiers HTM et PHP d'un site d'ISO-8859-1 en UTF-8,
je me suis dit : je vais me bricoler une moulinette pour encoder toutes ces pages.

Voici ci-dessous le script en question... qui ne fonctionne pas.

Il se trouve que pour tous les fichiers
(pourtant bien identifiés lors du scan du dossier iso)
is_file($file) renvoie false. :shock:

Pourquoi mes fichiers ne sont-ils pas reconnus ?
<table>
<?php
$handle = opendir('iso');
while ($file = readdir($handle))
      { if (is_file($file)) // <------------------------------ renvoie FALSE ???
           { $extension = substr($file, -3, 3);
             if ($extension=='php' || $extension=='htm')
                { echo '<tr><td>'.$file.'</td>'."\n";
                  $contenu = file_get_contents($file);
                  if ($contenu)
                     { $contenu_new = html_entity_decode($contenu,ENT_NOQUOTES,'UTF-8');  // convertit les "&eacute;" en "é"
                       $contenu_new = utf8_encode($contenu_new);                          // convertit les "é" ISO en "é" UTF-8
                       $ecriture = file_put_contents('utf8'.$file,$contenu_new);
                       echo '<td>'.($ecriture ? 'OK' : '-----').'</td></tr>'."\n";
                     }
                     else
                     { echo '<td>Conversion non effectuée</td></tr>'."\n";
                     }
                }  
           }
      }
closedir($handle);
?>
</table>

Posté : 01 nov. 2008, 15:06
par Calimero
Remplace :
      { if (is_file($file)) // <------------------------------ renvoie FALSE ???
Par :
      { if (is_file('iso/'.$file)) // mieux non ?
C'est une erreur très courante qu'on rencontre à peu près une fois par mois sur le forum ;-) opendir() ouvre le répertoire en lecture mais ne rentre pas dans ce répertoire (il faudrait pour cela un chdir() ). Ton script continue à opérer depuis son répertoire d'éxécution, ce qui impose dans ta boucle de préfixer les chemins par le répertoire racine de ton parcours.

Posté : 01 nov. 2008, 15:14
par Sékiltoyai
T'aurais dû le faire en Perl, tu te serais moins fait chier :mrgreen:

Posté : 01 nov. 2008, 15:22
par albat
:oops:

Merci, merci, merci ! :agenouille:

Posté : 01 nov. 2008, 15:23
par albat
T'aurais dû le faire en Perl, tu te serais moins fait chier :mrgreen:
Sans doute, mais mon niveau en Perl est... :-*
Et puis, je ne suis pas inscrit sur PerlFrance ! :langue:

Taquin, va ! ;)

Posté : 01 nov. 2008, 18:00
par Berzemus
T'aurais dû le faire en Perl, tu te serais moins fait chier :mrgreen:
+++

:twisted: