+2

[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

🍁𝔑𝔥ậ𝔱 𝔏𝔞𝔪🍁


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí