2010-05-31 8 views
0

Je me demande ce que je fais mal! Je veux lire un dossier et parcourir les fichiers existants, en vérifiant s'il s'agit d'images ou de fichiers texte.PHP: Problème avec la lecture de fichiers

S'il y a des fichiers de texte, ils doivent être placés dans un div, s'il y a des images, ils devraient être affichés en tant qu'image.

<?php 
$path = 'thumbs'; 
if ($handle = opendir($path)) { 
    while (false !== ($file = readdir($handle))) { 
     $ext = pathinfo($file, PATHINFO_EXTENSION); 
      if ($ext == "jpg" || $ext == "jpeg" || $ext == "gif" || $ext == "png") { 
       print "<img class='thumb' src='$path/$file'/>"; 
      } else if ($ext == "txt" || $ext == "rtf") { 
       //read text 
       $lines = file_get_contents($file); 
       $lines = str_replace("\n","<br/>",$lines); 
       print "<div class='text'>" . $lines . "</div>"; 
       //read text 
      } 
    } 
    closedir($handle); 
} 
?> 

il semble y avoir un problème que je ne peux pas trouver, parce que toutes les images ont une mise, cependant que l'un des rares textfiles est imprimé. Des idées pour lesquelles il imprime seulement un fichier texte ???

je vous remercie pour votre aide!

+0

Pouvez-vous enregistrer la valeur de $ ext à un fichier texte? Je pense que ce n'est pas réglé correctement. Vous pouvez également essayer d'utiliser un "else" au lieu d'un "else if" pour capturer tout ce que la condition de l'image n'a pas. – barrycarter

+0

Je recommande d'utiliser 'nl2br()' au lieu de remplacer les chaînes (fonctionne aussi sur les fins de ligne Windows) – soulmerge

+0

si je le change en simple "else" au lieu de "else if" cela ne fait pas de différence! – matt

Répondre

0

Selon l'endroit où cela est en cours d'exécution de celui-ci ne peut pas savoir le chemin du fichier ... essayer quelque chose comme ceci:

$lines = file_get_contents($path . '/' . $file); 
+0

merci! c'est tout! – matt

0

Êtes-vous sûr qu'il y a plus d'un txt ou rtf dans le répertoire thumbs?

+0

oui, il y a 4 fichiers txt et 5 images. toutes les images sont imprimées comme je les veux, cependant un seul fichier texte (test_one.txt - avec un peu de lips ipsum) est lu. – matt