[Lession 3 - PHP] Nhúng một file PHP vào trong một file PHP

    Khi viết chương trình xử lý bằng PHP sẽ không tránh khỏi việc lặp lại một công việc nào đó. Lúc này PHP cho phép nhúng một file php vào một file php khác, có thể coi đây là một phúc lợi cho người lập trình.

1. Nhúng file trong PHP

  • Nhúng file là một thao tác rất hữu ích khi bạn muốn nhúng cùng một đoạn code PHP, HTML hoặc văn bản giống nhau vào nhiều trang khác nhau mà không cần phải lặp lại code.
  • Trong PHP, để tiết kiệm thời gian chúng ta có thể tạo sẵn các file nhúng php như phần header, content, footer, function ... dùng chung nào đó và chỉ việc nhúng chúng vào trang web. Khi cần chỉnh sửa ta cũng chỉ cần vào các file nhúng để sửa mà không phải lội vào trang web để 😆.

2. Các hàm nhúng file trong PHP

    Khởi tạo 3 file php như sau:

  • Header:
<header>
     Header
</header>
  • Footer:
<footer>
     Footer
</footer>
  • index.php:
<?php  ?>
    <div>Content</div>
<?php  ?>

  • Kiểm tra sự tồn tại của đường dẫn trước khi nhúng file:
<?php
  $path = "fileA.php";
  if(file_exists($path)){
     require $path;
  } else{
     die("{$path} không tồn tại");
  }
?>

    Ở Lession 0 , tôi đã giới thiệu cách cài đặt localhost Xampp trên Window 10. Bây giờ hãy khởi động Xampp để trải nghiệm Apache và SQL nào 😉 .

2.1. Hàm Include:

    Include được dùng để chèn một file PHP vào một file PHP khác. Khi gặp lỗi include sẽ chỉ tạo cảnh báo PHP nhưng vẫn cho phép tiếp tục thực thi tập lệnh nếu không tìm thấy tệp được include.

  • Cú pháp:
<?php
include "đường_dẫn_file/tên_file";
?>
  •     Ví dụ:

    • Trong thư mục htdocs tạo một thư mục chung là DEMO , bên trong tạo thư mục con include và lưu file footer.phpheader.php trong đó.
    • file index.php đồng mức với thư mục include, tức là:

        


    Chỉnh sửa file index.php như sau:

<?php include "include/header.php"; ?>
<div>Content</div>
<?php include "include/footer.php"; ?>

    ✅ Running trên localhost:

    Gõ lệnh: localhost:80/DEMO/index.php


    Kết quả: Nội dung 2 tệp footer.phpheader.php đều đã được thêm vào dưới và trên Content

    


2.2. Hàm Require:

    Require đưa ra thông báo lỗi và ngừng thực thi đoạn code bên dưới câu lệnh.

  • Cú pháp:
<?php
require "đường_dẫn_file/tên_file";
?>
  •     Ví dụ: Sử dụng lại từ ví dụ ở trên:

    • Sửa tên thư mục include ➡️ require như hình.

        

    • Sửa file index.php như sau:
 <?php require "require/header.php"; ?>
<div>Content 2</div>
<?php require "require/footer.php"; ?>

    ✅ Running trên localhost:

    Gõ lệnh: localhost:80/DEMO/index.php

    Kết quả: Nội dung 2 tệp footer.phpheader.php đều đã được thêm vào dưới và trên Content 2

    

2.2. Hàm Include_once và Require_once

    Nếu bạn vô tình gọi cùng một tệp (thường là các function hoặc class) nhiều hơn một lần trong code của bạn bằng cách sử dụng các câu lệnh include() hoặc require(), nó có thể gây ra xung đột.

  •     Đừng lo lắng, Include_onceRequire_once sẽ giải quyết vấn đề này.

  •     Cái tên nói lên tất cả, Include_onceRequire_once quy định các tệp đã được thêm vào rồi sẽ không được thêm bất kì lần nào nữa.

<?php
 include_once '<ĐƯỜNG DẪN TỚI FILE>';
?>

<?php
 require_once '<ĐƯỜNG DẪN TỚI FILE>';
?>
  • Hai phương thức này hoạt động giống hệt nhau, đó là chỉ nhận tệp đúng 1 lần: Thử chút nhé 🤗
  •     Đầu tiên ta đưa tệp header.php ra cùng mức với index.php

        

    Oops! Tôi lỡ tay cho cả hai tệp ra rồi 😆😆 các bạn lỡ tay theo tôi cũng không sao cả nhé! 😁😁

  • Sửa tệp index.php thành thế này:
<?php
require 'header.php';
require 'header.php';
?>

    ⏩ Include hay require nếu gọi giống như trên, 2 em ấy sẽ in ra hai lần nhé 😩

    

    Nhưng chỉ cần thêm _once sau include hoặc require thì trang web sẽ chỉ nhận tệp một lần mà thôi, bất kể trước đó đã có require hay include

<?php
//dùng 1 once
require 'header.php';
require_once 'header.php';
?>
<?php
//dùng 2 once
require_once 'header.php';
require_once 'header.php';
?>

    Dù 1 _once hay 2 _once thì code trên cũng chỉ ra một kết quả:

    

3. Đường dẫn trong file nhúng

Có 2 loại đường dẫn:

    Trước tiên cần đưa 3 file về cùng một thư mục, ở đây tôi kéo 3 em ấy về cùng một nhà trong thư mục include 😘

    3.1. Đường dẫn tuyệt đối:

  • Sử dụng cách này cần kích hoạt allow_url_fopenallow_url_include sang chế độ On trong php.ini

    Để tìm file php.ini chỉ cần vào Xampp và chọn config ấn tổ hợp phím ctrl + F, cửa sổ tìm kiếm hiện ra, ta tìm hai từ khóa trên và đổi giá trị sang On.

    

    Tiến hành tìm kiếm với ctrl + F: allow_url_fopen

    

    Chuyển sang chế độ : On

    

    Tiến hành tìm kiếm với ctrl + F: allow_url_include

    

    Chuyển sang chế độ : On

    


    Sử dụng đường dẫn tuyệt đối như sau:

<?php include "http://localhost/DEMO/include/header.php"; ?>
<div>Content</div>
<?php include "http://localhost/DEMO/include/footer.php"; ?>

    ✅ Running trên localhost:

    Gõ lệnh: localhost:80/DEMO/index.php

    Kết quả: Nội dung 2 tệp footer.phpheader.php đều đã được thêm vào dưới và trên Content

    

    3.2. Sử dụng DOCUMENT_ROOT

    Một giải pháp hiệu quả khi bạn nhất thời chưa thể đưa ra được đường dẫn tuyệt đối của file php.

  • Cú pháp:
<?php include $_SERVER["DOCUMENT_ROOT"] . "/include/header.php"; ?>
<div>Content</div>
<?php include $_SERVER["DOCUMENT_ROOT"] . "/include/footer.php"; ?>

    ✅ Running trên localhost:

    Gõ lệnh: localhost:80/DEMO/index.php

    Kết quả: Nội dung 2 tệp footer.phpheader.php đều đã được thêm vào dưới và trên Content 2

    

    Link tham khảo:

    https://hocwebchuan.com/tutorial/php/php_include_require.php

    https://laptrinhvienphp.com/bai-19-huong-dan-iclude-va-require-trong-php/

    https://www.codehub.com.vn/Hoc-PHP/Nhung-File-trong-PHP

    🍁𝔑𝔥ậ𝔱 𝔏𝔞𝔪🍁

Nguồn: Viblo

Bình luận
Vui lòng đăng nhập để bình luận
Một số bài viết liên quan