cmt faire si fichier existe => ouvrir, sinon ouvrir un au

Invité
Invité n'ayant pas de compte PHPfrance

16 juil. 2005, 01:15

Je viens de regarder le titre du sujet, enfaite il est pas encore totalement résolu...

Eléphant du PHP | 132 Messages

17 juil. 2005, 01:49

Alors deux question. Regarde bien ton code, est-ce que ta variable $type est déclarée ??? Est-ce que une image est un fichier texte ? :shock:
        if (file_exists($rep_i.$file.".gif"))
        {
            // Si l'image correspondant existe dans le répertoire $rep
            $open = fopen($rep_i.$file.".gif","r");
            while (!feof($open))
            { // Tant qu'on a pas atteind la fin du fichier
            echo "image existe";  // Affiche la qq'ch
            }
        }
        else
        { // Si pas de description
        echo "<br>image existe pas";
        }
Tu te rend compte le nombre de ligne qu'il y a dans une image jpeg ???
Lol d'accord tu comprend rien à ce que je dis, je vais t'expliquer. Tout vas bien !!! :wink:
Bon tu veut tester si l'image existe et l'afficher. Pour la description, tu veut vérifier si le fichier de description existe et l'afficher. Seulement le fichier de description est un fichier texte, et la fonction:
$open = fopen($rep_d.$file.".txt","r");
            while (!feof($open))
            { // Tant qu'on a pas atteind la fin du fichier
            echo "<br>".fgets($open, 4096);  // Affiche la description contenue dans le fichier $rep_d.$file.".txt"
            } 
Lit une par une les lignes du fichier texte et les affiche.
MAIS une image n'est pas un fichier texte (nan ! c'est vrai ?) et donc tu ne peut pas ouvrir l'image, afficher chaque ligne, puis dire que le fichier existe et ainsi de suite.

Donc malgré tout ce charabia, voici le code définitif (commenté :wink:):
<?php
$rep_i = "répertoire_des_images/"; // Le répertoire images
$rep_d = "répertoire_des_descriptions/"; // Le répertoire descriptions
$handle=opendir('.'); // On ouvre le répertoire courant
while (false !== ($file = readdir($handle))){ // Lit le contenu du dossier
    if (is_file($file)) { // Si $file est un fichier
        if (file_exists($rep_d.$file.".txt")) {  // Si le fichier correspondant existe dans le répertoire $rep
            $open = fopen($rep_d.$file.".txt","r"); // On ouvre le fichier texte
            while (!feof($open)) { // Tant qu'on a pas atteind la fin du fichier (dernière ligne)...
            echo "<br>".fgets($open, 4096);  // ... on lit ligne une ligne et on affiche le contenu.
            }
fclose($open); // On ferme le fichier texte
        }
        else
        { // Si pas de description correspondante
        echo "<br>Aucune description"; // Devine !
        }
        
        if (file_exists($rep_i.$file.".gif")) // Si l'image correspondante existe dans le dossier image
        {
echo "<img src=\"".$rep_i.$file.".gif"."\">"; // On affiche l'image
        }
        else
        { // Si pas d'image correspondante
        echo "<br>image existe pas"; // Redevine !
        }
        
    }
}
closedir($handle); // On ferme le dossier "." (dossier courant)
?>
Voilà j'espère que tu as compris... :wink:

Bonne soirée
:: Kmeleon ::
CanalPC - La webradio communautaire :: Ecrivez/Enregistrez/Ecoutez !

Invité
Invité n'ayant pas de compte PHPfrance

17 juil. 2005, 14:00

Oui j'avai compris, je savais quon ne pouvais pas l'ouvrir comme un fichier text, et qu'on devais introduire la variable dans les balise html pour afficher l'image :lol: mais merci de me l'avoir quand meme dit ! :P

Je vais tester ton code, merci !

Nico128
Invité n'ayant pas de compte PHPfrance

17 juil. 2005, 14:26

Yes ca marche du tonnère ! Il me reste plus qu'à fignoler tous ça !

En tout ca merci beaucoup à tous !! :D :D

@++