HTTP վերնագրերի խնդիրը PHP-ում include-ի դեպքում

HTTP վերնագրերի հետ կապված խնդիր կարող է առաջանալ նաև ֆայլերի include-ի միջոցով ներառման դեպքում: Այն կդրսևորվի, երբ փակման ?> թեգից հետո ավելացված են բացատներ կամ դատարկ տողեր, ահա այսպես.

file.php<?php
  // some code
?>

 

Այս դեպքում, երբ մեր ֆայլը ներառվում է մեկ այլ ֆայլում, թողնված դատարկ տողերը կգործեն ինչպես էկրանին արտածում.

index.php<?php
  include 'file.php'; // ներսում կա արտածում էկրանին
  
  header('Content-Type: text/html');
?>

Խնդիրը ուղղելու համար ավելի լավ է բոլոր PHP ֆայլերից հեռացնել վերջին փակման ?> թեգը: Այս մեթոդը չի առաջացնում PHP-ի սխալ և միաժամանակ պաշտպանում է մեզ դատարկ տողերի պատահական ավելացումից: Եկեք ուղղենք մեր ֆայլը.

file.php<?php
  // some code
  
   
Задание 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');
?>