PHP bao gồm các tệp
Câu lệnh include
(hoặc require
) lấy tất cả văn bản / mã / đánh dấu tồn tại trong tệp được chỉ định và sao chép nó vào tệp sử dụng câu lệnh include.
Bao gồm các tệp rất hữu ích khi bạn muốn bao gồm cùng một PHP, HTML hoặc văn bản trên nhiều trang của một trang web.
PHP bao gồm và yêu cầu các câu lệnh
Có thể chèn nội dung của một tệp PHP này vào một tệp PHP khác (trước khi máy chủ thực thi nó), với câu lệnh bao gồm hoặc yêu cầu.
Các câu lệnh bao gồm và yêu cầu giống hệt nhau, ngoại trừ khi bị lỗi:
require
sẽ tạo ra lỗi nghiêm trọng (E_COMPILE_ERROR) và dừng tập lệnhinclude
sẽ chỉ tạo ra một cảnh báo (E_WARNING) và tập lệnh sẽ tiếp tục
Vì vậy, nếu bạn muốn quá trình thực thi tiếp tục và hiển thị cho người dùng kết quả đầu ra, ngay cả khi tệp bao gồm bị thiếu, hãy sử dụng câu lệnh bao gồm. Mặt khác, trong trường hợp mã hóa FrameWork, CMS hoặc ứng dụng PHP phức tạp, hãy luôn sử dụng câu lệnh request để đưa tệp khóa vào quy trình thực thi. Điều này sẽ giúp tránh ảnh hưởng đến tính bảo mật và tính toàn vẹn của ứng dụng của bạn, đề phòng trường hợp vô tình thiếu một tệp khóa.
Bao gồm các tệp giúp tiết kiệm rất nhiều công việc. Điều này có nghĩa là bạn có thể tạo tệp đầu trang, chân trang hoặc menu chuẩn cho tất cả các trang web của mình. Sau đó, khi tiêu đề cần được cập nhật, bạn chỉ có thể cập nhật tệp bao gồm tiêu đề.
Cú pháp
include 'filename';
or
require 'filename';
PHP bao gồm các ví dụ
ví dụ 1
Giả sử chúng ta có một tệp chân trang tiêu chuẩn được gọi là "footer.php", trông giống như sau:
<?php
echo "<p>Copyright © 1999-" . date("Y") . " W3Schools.com</p>";
?>
Để bao gồm tệp chân trang trong một trang, hãy sử dụng include
câu lệnh:
Thí dụ
<html>
<body>
<h1>Welcome to my home page!</h1>
<p>Some text.</p>
<p>Some more text.</p>
<?php include 'footer.php';?>
</body>
</html>
Ví dụ 2
Giả sử chúng ta có một tệp menu tiêu chuẩn được gọi là "menu.php":
<?php
echo '<a href="/default.asp">Home</a> -
<a href="/html/default.asp">HTML Tutorial</a> -
<a href="/css/default.asp">CSS Tutorial</a> -
<a href="/js/default.asp">JavaScript Tutorial</a> -
<a href="default.asp">PHP Tutorial</a>';
?>
Tất cả các trang trong trang Web nên sử dụng tệp menu này. Đây là cách nó có thể được thực hiện (chúng tôi đang sử dụng phần tử <div> để menu có thể dễ dàng được tạo kiểu bằng CSS sau này):
Thí dụ
<html>
<body>
<div class="menu">
<?php include 'menu.php';?>
</div>
<h1>Welcome to my home page!</h1>
<p>Some text.</p>
<p>Some more text.</p>
</body>
</html>
Ví dụ 3
Giả sử chúng ta có một tệp có tên "vars.php", với một số biến được xác định:
<?php
$color='red';
$car='BMW';
?>
Sau đó, nếu chúng ta bao gồm tệp "vars.php", các biến có thể được sử dụng trong tệp đang gọi:
Thí dụ
<html>
<body>
<h1>Welcome to my home page!</h1>
<?php include 'vars.php';
echo "I have a $color $car.";
?>
</body>
</html>
PHP bao gồm so với yêu cầu
Câu require
lệnh cũng được sử dụng để đưa một tệp vào mã PHP.
Tuy nhiên, có một sự khác biệt lớn giữa bao gồm và yêu cầu; khi một tệp được bao gồm trong include
câu lệnh và PHP không thể tìm thấy nó, tập lệnh sẽ tiếp tục thực thi:
Thí dụ
<html>
<body>
<h1>Welcome to my home page!</h1>
<?php include 'noFileExists.php';
echo "I have a $color $car.";
?>
</body>
</html>
Nếu chúng ta thực hiện cùng một ví dụ bằng cách sử dụng require
câu lệnh, câu lệnh echo sẽ không được thực thi vì quá trình thực thi tập lệnh bị chết sau khi
require
câu lệnh trả về một lỗi nghiêm trọng:
Thí dụ
<html>
<body>
<h1>Welcome to my home page!</h1>
<?php require 'noFileExists.php';
echo "I have a $color $car.";
?>
</body>
</html>
Sử dụng require
khi tệp được ứng dụng yêu cầu.
Sử dụng include
khi tệp không được yêu cầu và ứng dụng sẽ tiếp tục khi không tìm thấy tệp.