IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Lister avec file_exists ?


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2006
    Messages
    163
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 163
    Par défaut Lister avec file_exists ?
    Bonjour, je préparre une page où certains fichiers seront présents dans le dossier et d'autres non.
    J'ai opté pour la function file_exists, mais mon prob c'est que je n'arrive proprement à écrire que pour 1 seul fichier.
    code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     <?php
    $filename = "ecole/1e.jpg";
     
    if (file_exists($filename)) {
        echo "
    <img src='ecole/1e.jpg' width='100' height='75' alt='l' />
    <br />
    <img src='img/smileys/biggrin.gif' alt='From Léna' />
    <a href=ecole/1e.html=$myrow[2] target=wclose 
    onclick=window.open('popup-ecole/1e.html=$myrow[2]','wclose','width=550,height=500,toolbar=yes,status=no,left=20,top=30')><span style='color:#000066;'>cliquer ICI</span></a>
    ";} 
    else {
        echo "Le fichier $filename n\'est pas disponible.";
    }
    ?>
    Ma question est, si vous voulez bien m'aider :
    Comment faire une liste de fichier
    (du type :
    $filename = "ecole/1e.jpg";
    $filename = "ecole/2e.jpg";
    $filename = "ecole/3e.jpg";
    etc...)
    Et valider les photos existantes tout de même et pour les manquante faire un petit mot du type : "en attente"
    Car pour l'instant, si je cumule les : "$filename"
    je n'ai que le message d'erreur : echo "Le fichier $filename n\'est pas disponible.";
    Mais pas non plus les photos ou articles disponibles, alors que je souhaiterais voir les fichiers existants apparaître......
    J'espère m'être assez bien expliqué
    Merci par avance pour vos éclaircissements.

  2. #2
    Membre éprouvé
    Inscrit en
    Décembre 2009
    Messages
    80
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 80
    Par défaut
    Je te propose d'utiliser un tableau où chaque entrée sera un nom de fichier comme ceci par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     <?php
    $filenames = array(
    "ecole/1e.jpg",
    "ecole/2e.jpg"
    "ecole/3e.jpg"
    );
    foreach($filenames as $filename) { 
    if (file_exists($filename)) {
        echo "
    <img src='".$filename."' width='100' height='75' alt='l' />
    <br />
    <img src='img/smileys/biggrin.gif' alt='From Léna' />
    <a href=ecole/1e.html=$myrow[2] target=wclose 
    onclick=window.open('popup-ecole/1e.html=$myrow[2]','wclose','width=550,height=500,toolbar=yes,status=no,left=20,top=30')><span style='color:#000066;'>cliquer ICI</span></a>
    ";} 
    else {
        echo "Le fichier ".$filename." n'est pas disponible.";
    }
    }
    ?>

  3. #3
    Membre confirmé
    Inscrit en
    Décembre 2006
    Messages
    163
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 163
    Par défaut
    Super, merci beaucoup, je possède mal les "array" ça me fait un cours pour mieux maitriser cette technique.
    Je test ça très vite.
    A+++ !

  4. #4
    Membre confirmé
    Inscrit en
    Décembre 2006
    Messages
    163
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 163
    Par défaut
    (Suite)
    J' ai eu 2 ou 3 petits pb avec la syntaxe, voici donc le bout de script ok...:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     <?php
    $filenames = array(
    "ecole/1e.jpg",
    "ecole/2e.jpg",
    "ecole/3e.jpg");
    foreach($filenames as $filename) { 
    if(file_exists($filename)) {
        echo "
    <img src='ecole/1e.jpg' width='100' height='75' alt='l' />
    <br />
    <img src='img/smileys/biggrin.gif' alt='From Léna' />
    <a href=ecole/1e.html=$myrow[2] target=wclose 
    onclick=window.open('popup-ecole/1e.html=$myrow[2]','wclose','width=550,height=500,toolbar=yes,status=no,left=20,top=30')><span style='color:#000066;'>cliquer ICI</span></a>
    ";} 
    else {
        echo "Le fichier ".$filename." n'est pas disponible.";
    }
    }
    ?>
    Le problème qui subsiste c'est la récupération des différents fichiers à ouvrir pour agrandissement par le lien "popup" du fichier "vignette".
    Je commence à croire que je suis sur une fausse piste...

    Pour les vignettes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if(file_exists($filename)) {
        echo "
    <img src='$filename' width='100' height='75' alt='l' />.....
    fonctionne.

    Pour les popup (agrandissement) je crois que je vais changer de "js" et intégrer l'agrandissement dans la page...

  5. #5
    Membre chevronné
    Avatar de hornetbzz
    Homme Profil pro
    Directeur commercial
    Inscrit en
    Octobre 2009
    Messages
    482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France

    Informations professionnelles :
    Activité : Directeur commercial

    Informations forums :
    Inscription : Octobre 2009
    Messages : 482
    Par défaut
    Il y a de ttes façons une boulette :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href=ecole/1e.html=$myrow[2] ..>
    Si ta page ecole/1e.html contient un $_GET, il ne recuperera rien comme ça.

    Le bon format (en html) est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="ecole/1e.html?ta_var_get=$myrow[2]" ... >

  6. #6
    Membre chevronné
    Avatar de hornetbzz
    Homme Profil pro
    Directeur commercial
    Inscrit en
    Octobre 2009
    Messages
    482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France

    Informations professionnelles :
    Activité : Directeur commercial

    Informations forums :
    Inscription : Octobre 2009
    Messages : 482
    Par défaut
    Si j'ai bien compris ce que tu veux faire, voilà comment je ferais :

    La partie PHP :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    <?php
    $filenames = array(
    					"ecole/1e.jpg",
    					"ecole/2e.jpg",
    					"ecole/3e.jpg");
     
    define("POPUP_TIMEOUT", 30);
     
    foreach($filenames as $filename) { 
     
    	if(file_exists($filename)) {
     
    		$thumbnail = $filename ;
     
    		// à supposer que ton server soit paramétré pour le faire avec un .html (sinon, remplacer par un .php) :
    		$img_to_popup = basename($thumbnail, '.jpg') . '.html?ta_var_get='. $myrow[2] ;
     
     
    		$popup = "PopUp('$img_to_popup', 'open', 'test', '200', '150', 'right', 'top', '".POPUP_TIMEOUT."', false); return false;";
     
    		echo '<a href="javascript:void(0)" onclick="' . $popup . '"> <img src="' . $thumbnail . '"/>' . 'cliquer ICI' . '</a>';
     
    	} 		
    	else {
    		echo "Le fichier ".$filename." n'est pas disponible.";
    	}
    }
     
    ?>
    La partie javascript
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    function PopUp(url, on_off, title, width, height, positionX, positionY, timeout, debug) {
    // ATTENTION: la desactivation de "window.location" ne suffit pas forcément par ex avec FF, il faut aller dans about:config
     
    	// il faut déclarer une variable globale pour pouvoir la rappeler si on veut fermer la fenetre dans une autre sous-fonction
    	var my_window;
     
    	function Ouvre(on){
    		var options	= 'toolbar=0,location=0,directories=0,status=0,scrollbars=0,resizable=0,menubar=0';	
    			if (on == true) {
    				my_window = window.open(url, title, options+',top='+PosY+',left='+PosX+',width='+width+',height='+height);
    				//alert('Debug: ouverture de ' + my_window + ', avec url= '+ url);
    			}
    		}
     
    	function Ferme(off){
    		//alert('debug: tentative fermeture');
    		if (off == true) {
    			//alert('debug: demande fermeture popup');
    			if (my_window.document) {
    				//alert('debug: fermeture popup');
    				my_window.close();
    			}
    		}
    	}
     
    	// Init et controle des parametres d'entrée
    	timeout	= (timeout == 0 )? timeout = 1000 : timeout;
    	var marginX	= 20;
    	var marginY	= 20;
    	var ScreenX = screen.availWidth;
    	var ScreenY = screen.availHeight;
     
    	if ((positionX != 'center') && (positionX != 'left') && (positionX != 'right')) {
    		positionX = 'center' ;
    	}
    	if ((positionY != 'top') && (positionY != 'center') && (positionY != 'bottom')) {
    		positionY = 'center' ;
    	}
     
    	// debug
    	if (debug) { alert('X:' + positionX + ' Y:' + positionY); }
     
     
    	// Calcul de la position (PosX,PosY) d'affichage de la fenetre selon les parametres user
    	// methode: Xa: coin sup gauche, Xo: centre de la fenetre => on cherche Xo puis on deduit Xa (ou PosX)
    	// même principe pour PosY
     
    	if (positionX == 'center') {
    		PosX	= Math.round((ScreenX-width)/2);
    	}
     
    	if (positionX == 'left') {
    		PosX	= (Math.round((ScreenX/2-width)/2) > marginX )? Math.round((ScreenX/2-width)/2) : marginX ;
    	}
     
    	if (positionX == 'right') {
    		PosX	= (Math.round(ScreenX*3/4 - width/2) < ( ScreenX - marginX - width) )? Math.round(ScreenX*3/4 - width/2 ) : ScreenX - marginX - width ;
    	}
     
    	if (positionY == 'top') {
    		PosY	= (Math.round(ScreenY/4 - height/2) > marginY )? Math.round(ScreenY/4 - height/2) : marginY ;
    	}
     
    	if (positionY == 'center') {
    		PosY	= Math.round((ScreenY-height)/2);
    	}
     
    	if (positionY == 'bottom') {
    		PosY	= (Math.round(ScreenY *3/4 - height/2) < ScreenY - marginY - height )?  Math.round(ScreenY *3/4 - height/2) : ScreenY - marginY - height ;
    	}
     
    	// debug
    	// alert('url: '+url+' Open: '+on_off+' TimeOut (ms): '+timeout);
     
    	// Actions à mener
    	if (on_off == 'open')	{
    			Ouvre(true);
    			//alert('timeout = ' + timeout);
    			setTimeout(function(){Ferme(true)}, timeout); // Après un délai de 'timeout' millisecondes, on ferme la fenetre
    	}
     
    	if (on_off == 'close')	{
    			Ferme(true);
    	}
    return false;
    }

Discussions similaires

  1. Lister avec TIdFTP
    Par Leucistic dans le forum Composants VCL
    Réponses: 0
    Dernier message: 14/04/2008, 11h04
  2. Réponses: 3
    Dernier message: 22/02/2008, 04h03
  3. Lister avec croisement entre deux tables
    Par wehtam dans le forum Langage SQL
    Réponses: 3
    Dernier message: 10/01/2008, 23h10
  4. Problème avec file_exists() sur un fichier réseau
    Par raiden83 dans le forum Langage
    Réponses: 2
    Dernier message: 12/07/2007, 12h10
  5. pb avec File_exist
    Par getupe dans le forum Langage
    Réponses: 4
    Dernier message: 05/02/2006, 10h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo