Hướng dẫn php include file path

  • Trang chủ
  • Hướng dẫn học
  • Học PHP
  • PHP include và require

Định nghĩa và cách dùng include và require

  • include hoặc require tiện lợi cho việc sử dụng những phần dùng chung, ví dụ header, footer, sidebar hoặc một function dùng chung nào đó.
  • Đối với những phần dùng chung này, ta tách riêng ra 1 file PHP, sau đó sử dụng include hoặc require để kết nối.
  • Điều này tiện lợi cho việc chỉnh sửa, thay vì chỉnh nhiều trang, giờ thì ta chỉ việc chỉnh file PHP đã tách riêng là được.
  • Sự khác biệt giữa includerequire:

    • include: code bên dưới include sẽ tiếp tục thực thi, cho dù file được include có tồn tại hay không.
    • require: code bên dưới require sẽ không được thực thi, nếu file được require không tồn tại.

include

  • Được dùng để chèn một file PHP vào một file PHP khác.

Cấu trúc

đường_dẫn_file/tên_file";
?>

Ví dụ:

Content

Ta thấy nội dung 2 file header.phpfooter.php đã được thêm vào.

Download file ví dụ

include với file không tồn tại

  // Giả sử file header.php không có
Content

Warning: include(header.php): failed to open stream: No such file or directory in C:\xampp\htdocs\example\index.php on line 1

Warning: include(): Failed opening 'header.php' for inclusion (include_path='.;C:\xampp\php\PEAR') in C:\xampp\htdocs\example\index.php on line 1

Content

Ta thấy trình duyệt gửi cảnh báo, tuy nhiên những PHP vẫn thực thi những đoạn code bên dưới.

require

  • Được dùng để chèn một file PHP vào một file PHP khác, file được chèn bắt buộc phải tồn tại, nếu không sẽ không thực thi những đoạn code tiếp theo.
  • Thường được dùng để chèn nội dung kết nối database, function login, payment, ...
  • Cách sử dụng tương tự như include.

Cấu trúc

đường_dẫn_file/tên_file";
?>

Ví dụ:

Content

Nội dung 2 file header.phpfooter.php đã được thêm vào.

Download file ví dụ

require với file không tồn tại

  // Giả sử file header.php không có
Content

Warning: require(header.php): failed to open stream: No such file or directory in C:\xampp\htdocs\example\index.php on line 1

Fatal error: require(): Failed opening required 'header.php' (include_path='.;C:\xampp\php\PEAR') in C:\xampp\htdocs\example\index.php on line 1

Ta thấy trình duyệt gửi cảnh báo, và những đoạn code bên dưới đã không được thực thi.

PHP include và require với path

Lưu ý: nếu chưa được cấu hình đường dẫn tương đối (relative path) thì dễ xảy ra lỗi khi dùng
/đường_dẫn_file/tên_file (trong trường hợp phân cấp thư mục), khắc phục tình trạng này có 2 cách:

Sử dụng đườ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 On trong php.ini

Content

Download file ví dụ

Sử dụng DOCUMENT_ROOT

Content

Download file ví dụ

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 để mò
    Hướng dẫn php include file path
    .

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:
  ?>
    <div>Contentdiv>
  ?>

  • Kiểm tra sự tồn tại của đường dẫn trước khi nhúng file:

  $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

Hướng dẫn php include file path
.


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:

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:

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

Hướng dẫn php include file path
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:

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
      Hướng dẫn php include file path
      require như hình.

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

Hướng dẫn php include file path
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.


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


 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é
    Hướng dẫn php include file path
  • Đầ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

Hướng dẫn php include file path
Hướng dẫn php include file path
các bạn lỡ tay theo tôi cũng không sao cả nhé!
Hướng dẫn php include file path
Hướng dẫn php include file path

  • Sửa tệp index.php thành thế này:

require 'header.php';
require 'header.php';
?>

Hướng dẫn php include file path
Include hay require nếu gọi giống như trên, 2 em ấy sẽ in ra hai lần nhé
Hướng dẫn php include file path

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


//dùng 1 once
require 'header.php';
require_once 'header.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

Hướng dẫn php include file path

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.

Hướng dẫn php include file path


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:

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

Hướng dẫn php include file path
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:
 include $_SERVER["DOCUMENT_ROOT"] . "/include/header.php"; ?>
<div>Contentdiv>
 include $_SERVER["DOCUMENT_ROOT"] . "/include/footer.php"; ?>

Hướng dẫn php include file path
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

Hướng dẫn php include file path
𝔑𝔥ậ𝔱 𝔏𝔞𝔪
Hướng dẫn php include file path