Hàm fopen[]
cũng được sử dụng để tạo tệp. Có thể hơi khó hiểu, nhưng trong PHP, tệp được tạo bằng cách sử dụng cùng chức năng được sử dụng để mở tệp
Nếu bạn sử dụng fopen[]
trên một tệp không tồn tại, nó sẽ tạo tệp đó, với điều kiện là tệp được mở để ghi [w] hoặc nối thêm [a]
Ví dụ dưới đây tạo một tệp mới có tên "testfile. txt". Tệp sẽ được tạo trong cùng thư mục chứa mã PHP
Thí dụ
$myfile = fopen["tệp kiểm tra. txt", "w"]
Quyền đối với tệp PHP
Nếu bạn gặp lỗi khi cố gắng chạy mã này, hãy kiểm tra xem bạn đã cấp quyền truy cập tệp PHP của mình để ghi thông tin vào ổ cứng chưa
PHP Ghi vào Tệp - fwrite[]
Hàm fwrite[]
được sử dụng để ghi vào tệp
Tham số đầu tiên của fwrite[]
chứa tên của tệp để ghi vào và tham số thứ hai là chuỗi được ghi
Ví dụ dưới đây ghi một vài tên vào một tệp mới có tên "newfile. txt"
Thí dụ
$myfile = fopen["tệp mới. txt", "w"] or die["Không thể mở tệp. "];
$txt = "John Doe\n";
fwrite[$myfile, $txt];
$txt = "Jane Doe\n";
fwrite[$myfile, $txt];
fclose[$myfile];
?>
Lưu ý rằng chúng tôi đã ghi vào tệp "newfile. txt" hai lần. Mỗi lần chúng tôi viết vào tệp, chúng tôi đã gửi chuỗi $txt đầu tiên chứa "John Doe" và thứ hai chứa "Jane Doe". Viết xong ta đóng file lại bằng hàm fclose[]
Nếu chúng ta mở "newfile. txt" nó sẽ trông như thế này
Ghi đè PHP
Bây giờ "tệp mới. txt" chứa một số dữ liệu mà chúng tôi có thể hiển thị điều gì sẽ xảy ra khi chúng tôi mở một tệp hiện có để ghi. Tất cả dữ liệu hiện có sẽ bị XÓA và chúng tôi bắt đầu với một tệp trống
Trong ví dụ bên dưới, chúng tôi mở tệp hiện có "newfile. txt" và viết một số dữ liệu mới vào đó
Thí dụ
$myfile = fopen["tệp mới. txt", "w"] or die["Không thể mở tệp. "];
$txt = "Chuột Mickey\n";
fwrite[$myfile, $txt];
$txt = "Chuột Minnie\n";
fwrite[$myfile, $txt];
fclose[$myfile];
?>
Nếu bây giờ chúng ta mở "newfile. txt", chúng ta sẽ thấy Donald Duck và Goofy Goof được thêm vào cuối tệp
Nếu bạn muốn tạo các loại tệp hoặc hình ảnh khác nhau, tải tệp trực tiếp vào ổ đĩa của người dùng bằng PHP, bạn có thể chạy hàm readfile[]
Hãy xem cách thực hiện trong ví dụ tạo thư viện hình ảnh, điều này sẽ giúp người dùng tải xuống các tệp hình ảnh chỉ bằng một cú nhấp chuột
Trong ví dụ dưới đây, một bộ sưu tập hình ảnh. php được tạo và một mã được đặt bên trong nó
Vì vậy, trong ví dụ trên, liên kết tải xuống trỏ đến tệp tải xuống. tập tin php. Đến lượt nó, URL bao gồm tên tệp hình ảnh, giống như một chuỗi truy vấn. Ngoài ra, bạn có thể nhận thấy rằng hàm urlencode[] được áp dụng để mã hóa tên tệp hình ảnh theo cách mà chúng có thể được chuyển một cách an toàn giống như tham số URL. Lý do là tên tệp có thể bao gồm các ký tự URL không an toàn. Toàn bộ mã tải xuống. php, buộc tải xuống hình ảnh trông như sau
Các định dạng tệp khác như pdf, doc, v.v. cũng có thể được tải xuống theo cách đã trình bày ở trên
Điều quan trọng cần lưu ý là trong ví dụ trên, biểu thức chính quy [dòng 8] không cho phép các tệp có tên bắt đầu hoặc kết thúc bằng dấu chấm [. ]. Ví dụ: bạn có thể sử dụng tên tệp như sách. jpg hoặc Sách. jpg nhưng không thể sử dụng sách. jpg. ,. diều. jpg, v.v.
Thông thường, bạn không nhất thiết phải sử dụng bất kỳ ngôn ngữ kịch bản phía máy chủ nào như PHP để tải xuống hình ảnh, tệp zip, tài liệu pdf, tệp exe, v.v. Nếu loại tệp đó được lưu trữ trong một thư mục có thể truy cập chung, bạn chỉ cần tạo một siêu liên kết trỏ đến tệp đó và bất cứ khi nào người dùng nhấp vào liên kết, trình duyệt sẽ tự động tải xuống tệp đó
Download Zip file
Download PDF file
Download Image file
Download EXE file
Nhấp vào liên kết trỏ đến tệp PDF hoặc tệp Hình ảnh sẽ không trực tiếp tải xuống ổ cứng của bạn. Nó sẽ chỉ mở tệp trong trình duyệt của bạn. Hơn nữa bạn có thể lưu nó vào ổ cứng của bạn. Tuy nhiên, các tệp zip và exe được tự động tải xuống ổ cứng theo mặc định
Buộc tải xuống bằng PHP
Bạn có thể buộc hình ảnh hoặc các loại tệp khác tải trực tiếp xuống ổ cứng của người dùng bằng hàm PHP readfile[]
. Ở đây chúng ta sẽ tạo một thư viện hình ảnh đơn giản cho phép người dùng tải xuống các tệp hình ảnh từ trình duyệt chỉ bằng một cú nhấp chuột
Hãy tạo một tệp có tên "image-gallery. php" và đặt đoạn mã sau vào bên trong nó
Simple Image Gallery
';
echo '';
echo 'Download
';
echo '
'; } ?>
Nếu bạn xem kỹ đoạn mã ví dụ trên, bạn sẽ thấy liên kết tải xuống có dạng "tải xuống. php", URL cũng chứa tên tệp hình ảnh dưới dạng chuỗi truy vấn. Ngoài ra, chúng tôi đã sử dụng hàm PHP urlencode[]
để mã hóa tên tệp hình ảnh để nó có thể được chuyển an toàn dưới dạng tham số URL, vì tên tệp có thể chứa các ký tự URL không an toàn
Đây là mã hoàn chỉnh của "tải xuống. php", buộc tải xuống hình ảnh
Tương tự, bạn có thể buộc tải xuống các định dạng tệp khác như tệp word doc, tệp pdf, v.v.
Biểu thức chính quy trong ví dụ trên [dòng số 8] sẽ đơn giản là không cho phép những tệp có tên bắt đầu hoặc kết thúc bằng ký tự dấu chấm [.
], ví dụ: nó cho phép các tên tệp như kites.jpg
hoặc Kites.jpg
, myscript.min.js
nhưng không