Trong PHP các đoạn mã khác nhau, bạn có thể định vị ở nhiều mã nguồn tệp [thường có phần mở rộng. php] khác nhau, rồi khi một tập tin script php chạy nó có thể tải và chạy mã bạn viết ở các tập tin khác nhau. Bạn có thể sử dụng hàm [lệnh] include, require và include_once, require_once để thực hiện tải và chạy tệp. Điều này giúp bạn có thể xây dựng các thư viện chức năng, mã tổ chức nhiều tệp theo logic nào đó, để dễ bảo trì và mở rộng
Lệnh bao gồm trong PHP
Lệnh include
đọc nội dung của tệp, thi hành nó. cú pháp
include 'ten-file-php.php'Giả sử bạn tạo menu chung cho các trang. Thì bạn có thể tạo tệp
menu.php
với nội dung như sau. Home - Lập trình PHP - HTML - Liên hệ
Với tệp menu.php
này, bạn có thể đặt nó vào các tệp khác, ví dụ bạn tạo tệp index.php
Đây là ví dụ về lệnh include[]!
Khi thực hiện bao gồm thì phạm vi [khu vực hiệu lực của biến, các biến có hiệu lực tại dòng bao gồm thì cũng có hiệu lực trong tệp bên ngoài], đối với các hàm khai báo, lớp khai báo trong tệp bên ngoài thì có phạm vi toàn
Trong tệp bên ngoài, nếu có mệnh đề trả về thì nó sẽ trả về tại đó, có thể có giá trị trả về [mã sau khi trả lại không thực thi]
mg. php
file1.php
Một file ngoài đơn thuần tính toán xuất kết quả trả về có thể include nhiều lần, nhưng nếu file đó có định nghĩa function, class .. thì nếu include lại thì là định nghĩa lại - sẽ không được phép, phát sinh lỗi.
Chạy file1.php kết quả in ra:
Hai số a = 5, b = 6 Tong = 11 Hai số a = 33, b = 56 Tong = 89Hàm include_once trong PHP
Hàm include_once có chức năng giống như lớp include, điều khác duy nhất nếu một tệp đã từng được tải vào thì include_once lần 2, 3 sẽ không làm được gì [không tải lại]
Có lẽ cũng không cần giới thiệu nhiều về nhu cầu "giấu diếm" này vì hiện nay có khá nhiều trang sử dụng cách quản lý tải xuống như vậy và cũng có một số lượng cũng không kém các trang mới muốn tìm . trang web to hidden path of the files download.
Quản lý băng thông và "tài sản" là 2 lý do chính để sử dụng 1 chương trình quản lý tải xuống trên trang web . Bạn thử tưởng tượng có 1 . Bạn thử tưởng tượng có 1. Bạn thử tưởng tượng có 1 trang web cho tải nhạc hoặc ebook với 1 mức phí nho nhỏ, nếu liên kết để tải trực tiếp các tệp bị lộ tùm lum thì thứ nhất là "lỗ vốn", thứ hai là băng thông sẽ hết sạch nhanh đến khoảng trước khi bạn đang xem chuyện gì đã xảy ra.
Một số lý do khác cũng "chính đáng" không kém ví dụ như bạn muốn đếm số lần tải xuống tệp; . Trong những trường hợp như vậy, hãy sử dụng 1 chương trình quản lý tải xuống trên trang web tệp của bạn tự tải lên và các tệp này nằm lại trong cơ sở dữ liệu hoặc được đặt trong 1 thư mục từ bên ngoài web không đọc được. Trong những trường hợp như vậy, hãy sử dụng 1 chương trình quản lý tải xuống trên trang web sẽ khá thuận lợi.
Tuy nhiên, cũng có một số điều cần chú ý trước khi bạn quyết định sử dụng 1 chương trình quản lý tải xuống trên trang web . . của mình.
- Tốc độ download sẽ chậm hơn rất nhiều so với download file trực tiếp
- Máy chủ sẽ phải xử lý nhiều công việc hơn so với khi cho phép tải xuống tệp trực tiếp
- Nếu tệp được lưu trữ trong cơ sở dữ liệu, bạn nên lưu ý rằng số lượng kết nối đồng thời vào cơ sở dữ liệu là có hạn, trong khi 1 tệp có dung lượng lớn, có thể phải mất tới nửa tiếng hoặc hơn thế nữa để tải xuống
Giả sử bạn có 1 tệp tài liệu. zip trong cùng thư mục với tệp tải xuống. php. Nhưng chỉ mình bạn biết là file tài liệu. zip này nằm ở đâu, người khác muốn tải xuống thì phải truy cập vào tệp tải xuống. php của bạn. Mã nguồn của tệp tải xuống. php will like after.
Mã PHP
________số 8_______
Ủa, chỉ có nhiều như vậy thôi à? Đúng vậy, chỉ có vỏn vẹn 10 dòng là có 1 trình quản lý download chương trình . zip, ta còn phải làm nhiều việc để chương trình hoàn thiện hơn. ].Đầu tiên, ta mở tệp tài liệu. zip to read at binary mode [nhị phân].
Mã PHP
$fp = fopen[$filename, "rb"];.
Mã PHP
header["Content-type: application/octet-stream"];
Đồng thời ta cũng thông báo cho trình duyệt biết dung lượng của tệp sẽ được tải xuống.
Mã PHP
header["Content-length: " . filesize[$filename]];
Và cuối cùng là đọc tệp nội dung và lặp lại để trình duyệt tải xuống.
Mã PHP
fpassthru[$fp];
Lệnh fpassthru[$fp]; .
Mã PHP
$content = fread[$handle, filesize[$filename]];
echo $content;
Mã PHP
header["Content-length: " . filesize[$filename]];
Mã PHP
header["Content-type: application/octet-stream"];
Lệnh
Mã PHP
header["Content-type: application/octet-stream"];
Thử chạy ví dụ trên vài lần, thay thế tệp tài liệu. zip bằng một số tệp khác nhau [ví dụ tệp Word, PDF, Excel. ] và thử trên một vài trình duyệt khác nhau, bạn sẽ thấy có vài chỗ hơi khó chịu.
- Trình duyệt sẽ mặc định lưu tệp vào đĩa với tên là tải xuống. php. You must revert your file name for true before open file ra read
- Trong một số trường hợp, thay vì hỏi lưu tệp vào đĩa, trình duyệt sẽ mở luôn tệp [ví dụ: chạy Word hoặc Acrobat mở luôn tệp vừa được tải xuống]
Mã PHP
header['Content-disposition: attachment; filename="'.$filename.'"'];
Cho đến bây giờ chương trình của chúng ta vẫn còn thô sơ, chúng ta vẫn cần chúng .
- Cho phép người dùng chọn tệp để tải xuống. Hiện tại chương trình của chúng ta mới cho phép download 1 file duy nhất
- Check tra data input from user. Đây là một công việc luôn nên làm. Chương trình cho phép sử dụng tùy chọn tệp để tải xuống thì cũng cần phải kiểm tra kỹ kẻo chính tệp cấu hình, nguồn tệp hoặc mật khẩu tệp của bạn bị tải xuống thì phiền
Mã PHP
$fp = fopen[$filename, "rb"];.
0
-------------------> BỔ SUNG BÀI VIẾT