Discussion:
Fichier include sans balises <?php et ?>
(trop ancien pour répondre)
Dominique Ottello
2008-06-03 21:40:20 UTC
Permalink
Bonjour,

Je viens juste de voir qu'il pourrait, peut-être, y avoir un problème
avec certains de mes fichiers "include".

Par exemple, voici une partie de code d'une page HTML :

echo "<div id='cadre_page'>\n";
echo "<h1 class='center'>Mon titre</h1>\n";
include($fichier_ajout);
echo "</div>\n";

Le contenu du fichier pointé par la variable $fichier_ajout n'a pas les
balises d'ouverture et de fermeture <?php ... ?> et, de plus, il ne
contient que du code html, pas du php, du genre :
<p>....</p>
<ul class='...'>
<li>...</li>
</ul>
<h2>....</h2>
etc.

Cela fonctionne bien tant en local (Wampserver) qu'en distant chez deux
hébergeurs différents.

Cela est-il le fonctionnement « normal » ?

Merci.
--
Aujourd'hui, l'idéal du progrès est remplacé par l'idéal de l'innovation :
il ne s'agit pas que ce soit mieux, il s'agit seulement que ce soit nouveau,
même si c'est pire qu'avant et cela de toute évidence. Montherlant
Technologie aéronautique - http://ottello.net - Les anciens de Vilgénis
Olivier Miakinen
2008-06-03 21:51:58 UTC
Permalink
Post by Dominique Ottello
Je viens juste de voir qu'il pourrait, peut-être, y avoir un problème
avec certains de mes fichiers "include".
[...]
Le contenu du fichier pointé par la variable $fichier_ajout n'a pas les
balises d'ouverture et de fermeture <?php ... ?> et, de plus, il ne
contient que du code html, pas du php, [...]
Cela est-il le fonctionnement « normal » ?
Si tu posais ta question dans un groupe anglophone, je répondrais bien
« RTFM » :
<cit. http://fr2.php.net/manual/en/function.include.php>
When a file is included, parsing drops out of PHP mode and into HTML
mode at the beginning of the target file, and resumes again at the end.
For this reason, any code inside the target file which should be
executed as PHP code must be enclosed within valid PHP start and end tags.
</cit.>

Mais vu l'énorme contresens fait dans la traduction française je
comprends que tu te poses la question :
<cit. http://fr2.php.net/manual/fr/function.include.php>
Il est important de noter que lorsqu'un fichier est include() ou
require(), les erreurs d'analyse apparaîtront en HTML tout au début du
fichier, et l'analyse du fichier parent ne sera pas interrompue. Pour
cette raison, le code qui est dans le fichier doit être placé entre les
balises habituelles de PHP.
</cit.>

Du coup, je tente une traduction plus correcte en français :
«
Quand un fichier est inclus, l'analyse sort du mode PHP pour entrer
dans le mode HTML, et elle revient en mode PHP à la fin. Pour cette
raison, tout code dans le fichier inclus qui doit être exécuté comme
code PHP doit être entouré de balises de début et de fin de PHP
valides.
»
... et tout code HTML qui n'a pas à être exécuté peut donc rester tel
quel.

Cordialement,
--
Olivier Miakinen
Dominique Ottello
2008-06-04 11:29:58 UTC
Permalink
Post by Olivier Miakinen
«
Quand un fichier est inclus, l'analyse sort du mode PHP pour entrer
dans le mode HTML, et elle revient en mode PHP à la fin. Pour cette
raison, tout code dans le fichier inclus qui doit être exécuté comme
code PHP doit être entouré de balises de début et de fin de PHP
valides.
»
... et tout code HTML qui n'a pas à être exécuté peut donc rester tel
quel.
Merci, pour cette traduction « correcte et compréhensible ».

J'avais mal interprété le RTFM anglais et les explications françaises
sur php.net m'avaient complètement embrouillé.

Du coup, je suis rassuré !
--
Aujourd'hui, l'idéal du progrès est remplacé par l'idéal de l'innovation :
il ne s'agit pas que ce soit mieux, il s'agit seulement que ce soit nouveau,
même si c'est pire qu'avant et cela de toute évidence. Montherlant
Technologie aéronautique - http://ottello.net - Les anciens de Vilgénis
newpain
2008-06-05 23:02:00 UTC
Permalink
Post by Dominique Ottello
Bonjour,
Je viens juste de voir qu'il pourrait, peut-être, y avoir un problème
avec certains de mes fichiers "include".
echo "<div id='cadre_page'>\n";
echo "<h1 class='center'>Mon titre</h1>\n";
include($fichier_ajout);
echo "</div>\n";
Le contenu du fichier pointé par la variable $fichier_ajout n'a pas les
balises d'ouverture et de fermeture <?php ... ?> et, de plus, il ne
<p>....</p>
<ul class='...'>
<li>...</li>
</ul>
<h2>....</h2>
etc.
Cela fonctionne bien tant en local (Wampserver) qu'en distant chez deux
hébergeurs différents.
Cela est-il le fonctionnement « normal » ?
Merci.
C'est correct me semble t il !!

Juste une façon d'inclure un fichier sans include() ni require()
la fonction file_get_contents() lit le fichier et on l'affiche .

Exemple:

<?php
echo (file_get_contents('monfichier.html'));
?>

Voila ma petite contribution
Christophe Meresse
2008-06-06 13:53:30 UTC
Permalink
Post by newpain
Juste une façon d'inclure un fichier sans include() ni require()
la fonction file_get_contents() lit le fichier et on l'affiche .
<?php
echo (file_get_contents('monfichier.html'));
?>
Oui mais c'est différent, le fichier ne sera pas interprété, si il
contient du code php, ce code sera affiché par le client.

Christophe

Continuer la lecture sur narkive:
Loading...