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 :

Créer une page par image ?


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 12
    Points : 6
    Points
    6
    Par défaut Créer une page par image ?
    Bonjour à tous !

    Je débute un peu dans la bidouille php, et dans le cadre d'une création de galerie j'aimerais la chose suivante :

    Dans le dossier "images", qui contient "01.jpg, 02.jpg, gnagnagna"
    Avoir un fichier "images.php"
    Tel qu'à chaque fichier "image.jpg", il me crée une page "image.html".
    J'ai lu qu'on pouvait s'arranger pour faire des bidules du genre :
    pour l'image 01.jpg, on a a la page image.php?01

    Je suis sûre que c'est possible, et tout facile en plus.

    Mais j'ai beau chercher, je ne vois pas trop comment faire.
    Je me noie et perds dans la documentation.

    Autant j'étais toute fière de savoir insérer correctement les miniatures tout ça tout ça, autant là je galère, alors que ça a l'air moins compliqué.

    Quelqu'un pourrait-il m'aider ?

    Merci beaucoup par avance

  2. #2
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    salut,
    je te conseille de reagrder :
    la faq php : http://php.developpez.com/faq/
    les cours php : http://php.developpez.com/cours/
    Alunissage : Procédé technique consistant à déposer des imbéciles sur un rêve enfantin.

    Cours | FAQ | Sources Javascript
    Cours | FAQ | Sources PHP
    Mes Articles

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    Je n'ai que peu de temps à cause du réveillon et tout ça, j'ai parcouru en diagonale, mais je ne sais trop où regarder exactement...

    Je m'y replongerai dedans plus tard, si quelqu'un avait un raccourci cependant il sera grandement bienvenu.

    Bon réveillon et tout le tralala à tous

  4. #4
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 679
    Points
    18 679
    Par défaut
    Dans le dossier "images", qui contient "01.jpg, 02.jpg, gnagnagna"
    Avoir un fichier "images.php"
    Tel qu'à chaque fichier "image.jpg", il me crée une page "image.html".
    En gros, voilà ce qu'il faudra que tu fasses...


    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
    <?php
    function page_create($img) {
    	$text = "<html><head><title>";
    	$text .= $img;
    	$text .= "</title></head><body>";
    	$text .= '<img src="' . $img . '.jpg" />';
    	$text .= "</body></html>";
     
    	if (!$handle = fopen("$img.htm", 'w')) {
             print "Impossible d'ouvrir le fichier";
             exit;
        }
     
        if (!fwrite($handle, $text)) {
           print "Impossible d'écrire dans le fichier";
           exit;
        }
     
        print "L'écriture de dans le fichier a réussi";
     
        fclose($handle);
    }
     
     
    $d = dir(".");
    while($entry = $d->read()) {
    	if (ereg('(.*).jpg$',$entry)) {
    		page_create(substr($entry,sizeof($entry)-1,-4));
    	}
    }
    $d->close();
    ?>
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    Bonjour Gorgonite !

    Merci de ta réponse rapide

    Alors la première partie, tout va bien je comprends (je ne savais pas qu'il existait une fonction page_create, ça c'est pratique)

    Je ne comprends juste pas ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $d = dir(".");
    while($entry = $d->read()) {
       if (ereg('(.*).jpg$',$entry)) {
          page_create(substr($entry,sizeof($entry)-1,-4));
       }
    }
    $d->close();
    ?>
    Pourrais-tu éclairer ma lanterne ?

    Code X : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $d lit le dossier ok
    tant que $entry = $d, donc qu'il y a un truc dans le dossier, il ->read, donc il lit le dossier ?
    si (ereg('(.*).jpg$',$entry)) (ça j'ai pas compris)
    alors il créee une page page_create(substr($entry,sizeof($entry)-1,-4)); 
    Là je n'ai pas compris les parenthèses, qui ont un rapport avec la taille du dossier ? Et le -1 -4, pour quoi ?

  6. #6
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    La fonction page_create n'existe pas c'est lui qui l'a créée

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $d = dir("."); // lit tout le répertoire courant
    while($entry = $d->read()) { // tant qu'il y a un fichier, on continu
       if (ereg('(.*).jpg$',$entry)) { // si le fichier est du type .jpg, on continu
          page_create(substr($entry, 0,(strlen($entry)-4))); // 1
       } 
    } 
    $d->close();  // ferme la lecture
    ?>
    // 1 : Quand tu arrives là tu un fichier, comme "mon_image.jpg". Ce code renvoit simplement mon_image. Il prend une partie de la chaine de départ (mon_image.jpg) en commençant à 0, puis en comptant le nombre total de lettre et en en enlevant 4 (soit .jpg). Ensuite, il appelle la fonction page_create avec comme titre mon_image. Voir http://fr2.php.net/manual/fr/function.substr.php

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 12
    Points : 6
    Points
    6
    Par défaut

    Tout est clair maintenant, j'ai de quoi rebondir et bidouiller à ma guise.
    Merci énormément à vous

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    Me reste un dernier détail, et je vous laisse tranquille
    Si je veux créer la page dans un autre dossier (existant) que $d ?

    Ca doit être dans cette ligne-ci qu'il faut bidouiller, je pense, mais malgré mes essais je n'y arrive pas.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     page_create(substr($entry, 0,(strlen($entry)-4)));
    Ou alors au début, quand on définit page_create ? Je pense moins.

    Un dernier sauveur ?

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    J'ai trouvé, fallait juste faire cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    page_create('dossier/'.substr($entry,sizeof($entry)-1,-4));
    Le problème est solutionné

  10. #10
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    Non là tu vas juste changer le titre
    Il faut faire:

    au lieu de

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    Le titre ? Quel titre ?
    Il m'enregistre bien les fichiers .html dans le dossier "images", c'est ce que je désirais ^^

    Bon, le code est encore un peu bazardeux, mais vous pouvez voir le résultat ici

    Au moins, je n'ai plus à me compliquer la vie à créer plein de pages pour chaque image, et j'ai aussi inclus de quoi modifier titre/date.

    Merci encore

    PS : si le code interesse quelqu'un, je peux le poster ici, suffit de l'indiquer, mais attention je ne garantis rien, c'est pas encore très aux normes tout ça, va falloir maintenant que je "range bien".

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 14/11/2010, 19h38
  2. Créer une page bibliothèque de document par le code
    Par lightbulb dans le forum SharePoint
    Réponses: 3
    Dernier message: 11/02/2009, 14h58
  3. [VB.NET]Créer une instance par page
    Par Dnx dans le forum ASP.NET
    Réponses: 20
    Dernier message: 31/10/2005, 13h22
  4. créer une page plan de site
    Par yvan02 dans le forum Langage
    Réponses: 7
    Dernier message: 09/10/2005, 19h13
  5. Peut-on créer une page internet via JBuilder?
    Par Xavier dans le forum JBuilder
    Réponses: 2
    Dernier message: 17/02/2005, 21h21

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