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 :

Techniquement un Include ?


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Homme Profil pro
    Inscrit en
    Avril 2005
    Messages
    614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Turquie

    Informations forums :
    Inscription : Avril 2005
    Messages : 614
    Par défaut Techniquement un Include ?
    un truc que je ne comprend pas bien,

    J'ai une page générale qui fait tout mes include du "header", "center" et "footer" donc 3 fichiers qui contiennes réciproquement mon en-tete, mon contenu et mon pied de page.

    alors pour appeler mes différent contenu je procede en envoyer un parametre dans l'url, et donc mon fichier center.php récupere le parametre et fait un include du fichier a intégrer en fonction du parametre récupéré.

    Ce que j'aimerai faire en + de çà çà serai de pouvoir changer le title (qui se trouve dans mon header) de ma page en fonction de la page de contenu appeller.

    Et jve pas faire une fonction dans mon header qui ferai genre if ... then {on appel tel fichier}, else if ... then {on appel tel fichier}

    Si qlq'un a compris ma requete et pourrai me diriger sur une solution je serai ravie

  2. #2
    Membre Expert
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Par défaut
    pas de problème en fait...
    tu fais une variable que tu récupère dans ton header ensuite ( il faut par contre que ce header ait l'extension php )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $titre = "mon titre de page";
    include('header.php');
    dans header.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <title><?php echo $titre; ?></title>

  3. #3
    Membre très actif
    Homme Profil pro
    Inscrit en
    Avril 2005
    Messages
    614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Turquie

    Informations forums :
    Inscription : Avril 2005
    Messages : 614
    Par défaut
    euhh non jcrois que ta pas compris cke je voulais dire, ou alors jm'y prend mal pour developpez mes pages.

    en faite imaginons que jarrive dans ma page par défaut qui est index.php qui appelle des parametre par défaut et donc un title par défaut.

    maintenant j'ai un liens sur le mot "Automobile" avec comme parametre "auto" donc mon fichier "center.php" va récuperé le parametre "auto" et va faire un incule de "auto.php", et mon title jve qu'il soit stocker dans mon fichier "auto.php" et c'est lui qui va dire a "header.php" de mettre le title qu'il lui veut, sachant que "header.php" est déjà appeller qd mon fichier "center.php" est appeller.

    bon si vous me suivez, est ce que vous pourriez me dire si jsuis a coté de la plaque ou non la ?

  4. #4
    Membre Expert

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Par défaut
    La solution la plus simple, à mon avis, est la suivante :
    1) Tu indiques dans ton fichier inclus le title, toujours de la même façon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    // fichier auto.php
    //title=[Achetez mes belles automobiles]
    2) Au début de ton fichier index.php, après avoir validé les GET, tu récupères le contenu du title :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    // url du fichier à inclure
    $url_fichier='url_de_ton_fichier';
     
    // affectation du contenu total du fichier
    $contenu_fichier=file_get_contents($url_fichier);
     
    // récupération du title
    ereg('//title=[.+]', $contenu_fichier, $title)
    3) Ton title est donc dans la variable $title, que tu n'as plus qu'à envoyer au bon moment dans le header :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <title><?php echo $title; ?></title>
    NB : je n'ai pas vérifié si le ereg marche...

  5. #5
    Membre Expert
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Par défaut
    sachant que "header.php" est déjà appeller qd mon fichier "center.php" est appeller.
    Je crois que tu résumes bien non ?
    D'autres parts, je pense que tu fais un include en trop, le center n'est pas obligatoire... tu peux gérer ça avec un switch par exemple... (voir ci dessous )

    donc la solution est de jouer sans center.php pour le parametre de titre
    ** index.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
     
    $page=(!isset($_GET['page']))?('defaut'):($_GET['page']);
    switch($page) {
       case 'auto':
          $titre="Automobile";
          $required="auto.php";
          break;
       default:
          $titre="Accueil";
          $required="accueil.php";
          break;
    }
    include("header.php");
    include($required);
    ** header.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <title><?php echo $titre; ?></title>
    ;-)

  6. #6
    Membre très actif
    Homme Profil pro
    Inscrit en
    Avril 2005
    Messages
    614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Turquie

    Informations forums :
    Inscription : Avril 2005
    Messages : 614
    Par défaut
    ska_root c exactement cke je veut pas faire en faite, mais je suis pas sur si çà marche vraiment.

    jvé essayer la méthode vg33 qui m'a l'aire interressante.

    juste si je pouvais avoir quelques infos sur les méthodes:

    - file_get_contents($url_fichier); // si je comprend bien çà récupere le code du fichier donner en parametre mais sans l'afficher ?

    - ereg('//title=[.+]', $contenu_fichier, $title) // çà me récupere une varaible que j'aurai stoccker dans mon fichier que je n'ai pas encore importer ?

  7. #7
    Membre très actif
    Homme Profil pro
    Inscrit en
    Avril 2005
    Messages
    614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Turquie

    Informations forums :
    Inscription : Avril 2005
    Messages : 614
    Par défaut
    çà fonctionne pas vg33

    $title == "" ?

    il est censer mettre dans $title ce qu'il trouve apres
    //title=[.+] ?

    a la rigeur dans mon fichier auto.php je peut y mettre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php
    $title="Pr&eacute;sentation automobiles";
    ?>
    puis ensuite appeller dans un premier temps mon fichier auto.php avec une méthode récupérer ma varaible et donc l'aficher ensuite dans mon header ?

  8. #8
    Membre Expert

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Par défaut
    Citation Envoyé par maximenet
    - file_get_contents($url_fichier); // si je comprend bien çà récupere le code du fichier donner en parametre mais sans l'afficher ?
    Ca récupère le contenu du fichier sous forme de texte (=tout le contenu avant l'interprétation par le serveur)
    - ereg('//title=[.+]', $contenu_fichier, $title) // çà me récupere une varaible que j'aurai stoccker dans mon fichier que je n'ai pas encore importer ?
    Non, ça récupère le texte (quel qu'il soit) contenu entre les caractères '//title=[' et le caractère ']' dans ton fichier $url_fichier.

  9. #9
    Membre Expert

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Par défaut
    Citation Envoyé par maximenet
    çà fonctionne pas vg33

    $title == "" ?

    il est censer mettre dans $title ce qu'il trouve apres
    //title=[.+] ?

    a la rigeur dans mon fichier auto.php je peut y mettre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php
    $title="Pr&eacute;sentation automobiles";
    ?>
    puis ensuite appeller dans un premier temps mon fichier auto.php avec une méthode récupérer ma varaible et donc l'aficher ensuite dans mon header ?
    Je teste et je te répond.

  10. #10
    Membre Expert

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Par défaut
    Il y avait des erreurs
    Voici une version qui fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    // récupération du title
    ereg('//title=\[.+\]', $contenu_fichier, $title);
    // affectation du title
    $title[0]=substr($title[0], 9);
    $title[0]=substr($title[0], 0, -1);
    Encore désolé pour les erreurs

  11. #11
    Membre Expert

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Par défaut
    Bien entendu, c'est $title[0] qui contient le title.

  12. #12
    Membre très actif
    Homme Profil pro
    Inscrit en
    Avril 2005
    Messages
    614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Turquie

    Informations forums :
    Inscription : Avril 2005
    Messages : 614
    Par défaut
    ce que j'ai fait moi:
    dans le fichier index.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $call_page_default = 'presentation';
    	if($_GET['call_page']){ 
    		$call_page = "contenu_page/". $_GET['call_page'] .".php"; 
    	}
    	else{ 
    		$call_page = "contenu_page/".$call_page_default.".php";
    	}
    $contenu_fichier=file_get_contents($call_page); 
    ereg("(//title=[.+])", $contenu_fichier, $title) ;
    require('header.php');
    require('center.php');
    require('footer.php');
    dans mon fichier auto.php je rajoute çà:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <!--
    //title=[Pr&eacute;sentation automobiles] 
    -->
    et donc dans header je rajoute:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $current_page = 'Automobiles';
    			if($title != ""){ 
    				$current_page = $title;
    			}
    			echo $current_page;
    Bah là çà m'affiche "Automobiles" dans tous les cas

  13. #13
    Membre très actif
    Homme Profil pro
    Inscrit en
    Avril 2005
    Messages
    614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Turquie

    Informations forums :
    Inscription : Avril 2005
    Messages : 614
    Par défaut
    Ah çà marche,

    ah t vraiment sympa d'avoir essayer le truc pour moi.

    cool merci t'i trop fort vg33

  14. #14
    Membre Expert

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Par défaut
    Citation Envoyé par maximenet
    ce que j'ai fait moi:
    dans le fichier index.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $call_page_default = 'presentation';
    	if($_GET['call_page']){ 
    		$call_page = "contenu_page/". $_GET['call_page'] .".php"; 
    	}
    	else{ 
    		$call_page = "contenu_page/".$call_page_default.".php";
    	}
    $contenu_fichier=file_get_contents($call_page); 
    ereg("(//title=[.+])", $contenu_fichier, $title) ;
    require('header.php');
    require('center.php');
    require('footer.php');
    dans mon fichier auto.php je rajoute çà:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <!--
    //title=[Pr&eacute;sentation automobiles] 
    -->
    et donc dans header je rajoute:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $current_page = 'Automobiles';
    			if($title != ""){ 
    				$current_page = $title;
    			}
    			echo $current_page;
    Bah là çà m'affiche "Automobiles" dans tous les cas
    Essaye mon nouveau code, il fonctionne parfaitement.
    Bien entendu, si ton fichier inclus est en html, il faut mettre le title dans des balises de commentaire, comme tu l'as fait.
    Il y avait 2 problèmes avant :
    1) Il fallait échapper les [ et ] dans l'ereg;
    2) ereg renvoie une chaine dans un tableau, comprenant toute l'expression recherchée. C'est pourquoi il faut supprimer le début et la fin de l'expression avec substr.

  15. #15
    Membre Expert

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Par défaut
    Citation Envoyé par maximenet
    Ah çà marche,

    ah t vraiment sympa d'avoir essayer le truc pour moi.

    cool merci t'i trop fort vg33
    Ca fait plaisir

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

Discussions similaires

  1. LES TECHNIQUES DES SGBDR / MySQL rapide ???
    Par SQLpro dans le forum Langage SQL
    Réponses: 1
    Dernier message: 12/09/2003, 11h16
  2. [Compilateurs] Sites techniques
    Par Traroth dans le forum Langages de programmation
    Réponses: 4
    Dernier message: 26/03/2003, 09h11
  3. [Technique] Conflits entre plusieurs requêtes
    Par Neowile dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 24/03/2003, 09h37
  4. [Technique] Intérêt des index
    Par ddams dans le forum Décisions SGBD
    Réponses: 10
    Dernier message: 04/11/2002, 15h11
  5. [Technique] Index, comment font les moteurs de recherche ?
    Par bat dans le forum Décisions SGBD
    Réponses: 4
    Dernier message: 25/10/2002, 15h41

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