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 :

[Tableaux] Lien affiché si fichier présent


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 224
    Points : 62
    Points
    62
    Par défaut [Tableaux] Lien affiché si fichier présent
    Bonjour

    Je charge chaque semaine sur mon site un fichier nommé fichexx.pdf où xx est incrémenté de 1 à chaque fois.

    Une page affiche un lien de cette sorte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <a href="fiche62.pdf" target="_blank">la fiche de la semaine</a>
    pour chaque fichier.

    Mon problème : je dois modifier chaque semaine la page pour ajouter un lien pour le nouveau fichier.

    Ma question : est-il possible (en Javascript, en Php, …) de tester la présence d’un fichier pour, ensuite, d’afficher le lien si ce fichier existe ?

    Si Oui, je pourrais créer plusieurs dizaines de liens à l’avance; seuls s’afficheraient les liens correspondants aux fichiers qui existent sur le site.

    Par avance merci de votre aide.

    Francois

  2. #2
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 252
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 252
    Points : 8 542
    Points
    8 542
    Billets dans le blog
    17
    Par défaut
    Tu peux faire un glob( ) http://www.php.net/glob pour récupérer tous les fichiers d'un répertoire.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 224
    Points : 62
    Points
    62
    Par défaut
    bonjour

    Voici ma solution:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <?php
    // affichage des 1000 premières fiches
    for( $i = 1000; $i >0; $i = $i - 1)
    {
    $filename = "fiche".$i.".pdf";
    if (file_exists($filename)) { print '<p>Pour visualiser la fiche de lecture n°'.$i.', <a href="fiche".$i.".pdf">cliquer  ici</a>.</p>'; }
    } 
    ?>
    si ça peut être utile à quelqu'un.

    Merci de votre aide.

    Francois

  4. #4
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 252
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 252
    Points : 8 542
    Points
    8 542
    Billets dans le blog
    17
    Par défaut
    Tu lances 1000 tests dont une grande partie ne servent à rien. Amha c'est une mauvaise solution.
    => Voir glob( ) & cie.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 224
    Points : 62
    Points
    62
    Par défaut
    merci de ta réponse Seb.

    Ta remarque est très judicieuse; dans un premier temps, je viens de réduire à 120 itérations, ce qui me suffira pour un an.

    Je vais aussi aller mieux regarder Glob.

    Merci encore.

    Francois

    ---------------------------------------------------------

    Oui, Glob() est splendide mais, pour moi, il reste encore qqes problèmes:
    - je dois afficher en ordre inverse de la séquence: je ne sais pas faire fonctionner foreach() du bas du tableau vers le haut
    - je dois exclure 2-3 autres fichiers (fiche.pdf, fiche_ancien.pdf, ...): je ne sais pas comment procéder pour les supprimer du traitement du tableau

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $files = glob("fiche*.pdf");
    foreach ($files as $filename) 
    	{
    	print '<p>Pour visualiser la fiche de lecture n°'.$filename.', <a href="fiche".$filename.".pdf">cliquer  ici</a>.</p>'; 
    	}
    Merci par avance de vos suggestions.

    Francois

  6. #6
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 252
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 252
    Points : 8 542
    Points
    8 542
    Billets dans le blog
    17
    Par défaut
    Citation Envoyé par francoisch Voir le message
    - je dois afficher en ordre inverse de la séquence: je ne sais pas faire fonctionner foreach() du bas du tableau vers le haut
    Tu peux trier ton tableau avec rsort( ) http://www.php.net/rsort

    - je dois exclure 2-3 autres fichiers (fiche.pdf, fiche_ancien.pdf, ...): je ne sais pas comment procéder pour les supprimer du traitement du tableau
    Tu peux rechercher l'$index de l'élément à supprimer avec array_search( ) http://www.php.net/array_search et ensuite le supprimer en faisant un unset($tableau[$index])

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 224
    Points : 62
    Points
    62
    Par défaut
    Voila, j'y suis, ça marche grace à votre aide, les liens s'affichent correctement.

    Le 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
    16
    17
    18
    19
    20
    21
     
    <?php
    $files = glob("fiche*.pdf");
     
    // tri du tableau en ordre inverse
    rsort($files);
     
    // suppression de certains fichiers
    //                fiche.pdf
    $key = array_search('fiche.pdf', $files);
    unset($files[$key]);
     
    //                fiche_ancien.pdf
    $key = array_search('fiche_ancien.pdf', $files);
    unset($files[$key]);
     
    foreach ($files as $filename) 
    	{
    	print '<p>Pour visualiser la fiche de lecture n°'.$filename.', <a href="fiche".$filename.".pdf">cliquer  ici</a>.</p>'; 
    	}
    ?>
    s'il peut être utile à quelqu'un.

    Merci encore à tous de votre aide patiente.

    Francois

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. afficher des fichiers sous forme de lien
    Par siwil dans le forum Langage
    Réponses: 28
    Dernier message: 07/09/2009, 16h40
  2. Réponses: 5
    Dernier message: 19/11/2007, 11h22
  3. Réponses: 6
    Dernier message: 09/03/2007, 02h47
  4. afficher un fichier bien précis quand la cible d'un lien n'existe pas
    Par Drozo dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 07/08/2006, 11h28
  5. Comment afficher un fichier HTML
    Par Xavier dans le forum C++Builder
    Réponses: 8
    Dernier message: 30/03/2004, 07h56

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