Problème avec les en-têtes HTTP lors des inclusions en PHP
Le problème avec les en-têtes HTTP peut également
survenir lors de l'inclusion de fichiers via
include. Il se manifestera dans le cas
où, après la balise fermante ?>,
des espaces ou des lignes vides sont laissés,
comme ceci :
<?php
// some code
?>
Dans ce cas, lors de l'inclusion de notre fichier dans un autre fichier, les lignes vides laissées agiront comme une sortie à l'écran :
<?php
include 'file.php'; // contient une sortie à l'écran
header('Content-Type: text/html');
?>
Pour corriger le problème, il est préférable dans tous
les fichiers PHP de supprimer la dernière balise fermante
?>. Cette technique ne provoque pas d'erreur
PHP et nous protège en même temps de l'ajout accidentel
de lignes vides. Corrigeons notre fichier :
<?php
// some code
Corrigez les erreurs commises dans le code suivant :
<?php
function func1() {
echo '1';
}
?>
<?php
function func2() {
echo '2';
}
?>
<?php
include 'file1.php';
include 'file2.php';
header('Content-Type: text/html');
?>
Corrigez les erreurs commises dans le code suivant :
<?php
function func1() {
echo '1';
}
?>
<?php
function func2() {
echo '2';
}
?>
<?php
include 'file.php';
header('Content-Type: text/html');
?>