Bonjour,
je souhaiterai savoir s'il est possible d'insérer du code source provenant d'un fichier différent, dans le code source d'une page web, un peu comme la commande \input qu'on utilise en latex, pour ceux qui connaissent ?
merci d'avance
Bonjour,
je souhaiterai savoir s'il est possible d'insérer du code source provenant d'un fichier différent, dans le code source d'une page web, un peu comme la commande \input qu'on utilise en latex, pour ceux qui connaissent ?
merci d'avance
Oui, bien sûr.
Perso, je connais deux possibilités :
- En html avec la balise <OBJECT>.
- En PHP, avec include() (la meilleure solution selon moi). Je crois que ça nécessite d'inclure le contenu d'un fichier .php dans un autre .php. Voici un exemple.
fichier-a-charger.php
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13<!doctype html> <html lang="fr-FR"> <head> <title>Mon site</title> <meta name="description" content="Bienvenue sur mon site." /> <!-- Toutes les autres balises du header sont dans le include --> <?php include(/chemin/include/fichier-a-inclure.php); ?> </head> <body> ... </body> </html>
fichier-a-inclure.php
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <meta charset="UTF-8" /> <meta http-equiv="content-language" content="fr-FR" /> <meta name="robots" content="all" /> <link rel="stylesheet" type="text/css" href="/css/20121221.css" />
NOTA: la syntaxe du chemin de l'include peut varier en fonction du serveur.
ça a l'air pas mal comme solution.
ça veut dire qu'on n'est pas obligé de mettre du php dans un fichier php à inclure ?
En tout cas c'est bien, parceque je voudrais utiliser la balise header du html 5 pour faire une entête avec une balise nav à l'interieur qui serait identique sur plusieurs pages web (du coup si je modifie qqchose dans nav, je ne le ferai qu'une fois)
et pareil dans la balise aside qui pourrai être identique pour chaque page d'un même thème.
merci pour l'info, je testerai ça demain pour voir.
Non, mais on peut le faireça veut dire qu'on n'est pas obligé de mettre du php dans un fichier php à inclure ?
C'est exactement ce que je faisje voudrais utiliser la balise header […] et pareil dans la balise aside qui pourrai être identique pour chaque page d'un même thème.
Pour info, si on regarde le code source interprété d'une page avec des include, on ne voit pas qu'il y a des include. On voit juste le contenu des include, au côté du reste du code.
Je n'ai pas eu le temps de regarder la balise <object>
En revanche, j'ai essayé avec la fonction php, mais ça ne fonctionne pas.
J'ai essayé directement en local en ouvrant le fichier html avec firefox, puis sur mon serveur local apache avec php d'activé, puis directement en mettant la page en ligne chez free. En fait, le fichier n'est pas inclu. Je ne sais pas pourquoi...
Je teste la balise object demain.
Sous Apache, je fais mes include comme ça :
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2<?php include($_SERVER['DOCUMENT_ROOT']."/chemin/fichier-a-inclure.php"); ?> // = /chemin/fichier-a-inclure.php
Bon, en fait, ça fonctionne.
C'est simplement que le fichier dans lequel j'insère du code doit avoir une extension en .php. Dans ce cas ça fonctionne...
J'ai essayé la balise object, mais ça ne me parait pas simple à utiliser.
ça n'inclue pas le code dans la page d'origine, donc je suis obligé de créé une vraie page, avec l'appel au CSS, etc... au lieu d'un fichier qui contient juste la partie du code à insérer (pas trop grave en sois). Le plus ennuyeux, c'est qu'il faut définir les dimensions et autres choses dans ce genre, parceque sinon ça créé une zone relativement petite avec des barres de défilement.
Par contre, dans l'éventualité ou je voudrais que la zone insérée aie un comportement particulier, comme par exemple rester affichée à l'écran quand on fait défiler la page (c'est pratique pour un menu), est-ce que la balise object pourrait faire l'affaire, ou du css (je sais qu'on peut bloquer un objet sur la page mais dans ce cas, il se supperpose au reste) ?
Merci en tout cas pour l'astuce du php, c'est bien pratique...
De rien Mais comme tu le vois, ce n'est pas une astuce : c'est un choix technique, plus simple et plus souple qu'utiliser une balise html.Merci en tout cas pour l'astuce du php
S'il le menu reste affiché, c'est normal qu'il se superpose au resteje voudrais que la zone insérée aie un comportement particulier, comme par exemple rester affichée à l'écran quand on fait défiler la page (c'est pratique pour un menu) […] je sais qu'on peut bloquer un objet sur la page mais dans ce cas, il se supperpose au reste
Dans tous les cas, il ne s'agit plus de choix de balises html. Il faut passer par CSS. Par exemple :
- Utiliser position:fixed sur le menu.
- Adapter la "page pleine", dont je propose ici une version :
Code html : 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 <!doctype html> <html lang="fr-FR"> <head> <meta charset="UTF-8" /> <title>Mise en page pleine + header/footer fixes</title> <meta name="author" content="NoSmoking, Muchos" /> <style type="text/css"> html, body { height : 100%; margin : 0; } #page { min-height : 100%; /* La page est toujours pleine */ position: relative; } header, footer { position: absolute; height : 20%; width: 100%; background-color : lightgray; text-align: center; } header {top: 0;} /* Header fixé en haut */ footer {bottom: 0;} /* Footer fixé en bas */ article { position: absolute; top: 20%; /* La position varie en fonction de la hauteur du header */ width: 100%; height: 60%; overflow : auto; /* Permet de scroller le corps de texte */ } h1 {margin: 0; text-align: center;} p {line-height: 2em;} /* Pour ajouter des padding et bordure sans débordement [css3] : box-sizing: border-box; */ </style> <!--[if IE 6]> <style type="text/css"> #page { height : 100%; } </style> <![endif]--> </head> <body> <div id="page"> <header>header</header> <article> <h1>corps de page</h1> <p>foo <br> bar <br> foo <br> bar <br> foo <br> bar <br> foo <br> bar</p> <p>foo <br> bar <br> foo <br> bar <br> foo <br> bar <br> foo <br> bar</p> </article> <footer>footer</footer> </div> </body> </html>
Je découvre le css depuis peu, donc je ne maitrise pas complètement, mais en gros, tu donnes 20% de la hauteur aux header et footer, et comme ils sont en position absolue, les articles vont glisser entre les deux...
Vraiment bien comme truc !
merci beaucoup
bon, si je me trompe dans mon explication, tiens moi au courant.
sinon, je mettrait le post en résolu
merci encore
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager