PHPにおけるinclude時のHTTPヘッダー問題

HTTPヘッダーの問題は、 includeによるファイルインクルード時にも 発生する可能性があります。この問題は、 閉じタグ ?> の後に スペースや空行がある場合に発生します。 以下のような場合です:

file.php<?php
  // 何らかのコード
?>

 

この場合、このファイルを別のファイルに インクルードすると、残された空行が 画面への出力として作用します:

index.php<?php
  include 'file.php'; // 内部で出力が発生
  
  header('Content-Type: text/html');
?>

この問題を修正するには、全ての PHPファイルで最後の閉じタグ ?> を削除するのが最良です。 この手法はPHPエラーを引き起こさず、 かつ、誤って空行を追加してしまうことを 防ぎます。ファイルを修正してみましょう:

file.php<?php
  // 何らかのコード
  
   
Задание 1

以下のコードに含まれるエラーを修正してください:

file1.php<?php
  function func1() {
    echo '1';
  }
?>

 
file1.php<?php
  function func2() {
    echo '2';
  }
?>

 
index.php<?php
  include 'file1.php';
  include 'file2.php';
  header('Content-Type: text/html');
?>

 
Задание 2

以下のコードに含まれるエラーを修正してください:

file.php<?php
  function func1() {
    echo '1';
  }
?>
<?php
  function func2() {
    echo '2';
  }
?>
 
index.php<?php
  include 'file.php';
  header('Content-Type: text/html');
?>