PHP Xử Lý Tệp Tin Tài Liệu IT

30 282 0
PHP  Xử Lý Tệp Tin  Tài Liệu IT

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Mở tập tinĐọc tập tinGhi tập tinĐóng tập tinThao tác đọcghi nội dung các tệp tin(file) có thể sử dụng cho một vài công việc như: Đọc và chỉnh sửa nội dung của các tệp tin cấu hình(config file) để chỉnh sửa các giá trị như chuỗi kết nối, tên cơ sở dữ liệu, tài khoản đăng nhập…Tải(upload) các tệp tin lên server.Ngoài ra việc thao tác với tệp tin còn cho phép ứng dụng có thể làm việc với các tệp tin XML thay cho cở sở dữ liệu.

Xử lý Tệp Tin Trong PHP Mục tiêu  Mở tập tin  Đọc tập tin  Ghi tập tin  Đóng tập tin Slide 2/ 20 Thao tác với tệp tin  Thao tác đọc/ghi nội dung tệp tin(file) sử dụng cho vài công việc như:  Đọc chỉnh sửa nội dung tệp tin cấu hình(config file) để chỉnh sửa giá trị chuỗi kết nối, tên sở liệu, tài khoản đăng nhập…   Tải(upload) tệp tin lên server. Ngoài việc thao tác với tệp tin cho phép ứng dụng làm việc với tệp tin XML thay cho cở sở liệu. Slide 3/ 20 Thao tác với tệp tin  Các bước làm việc với tệp tin sau:  Bước 1: Mở/tạo tệp tin cần làm việc – Hàm fopen()  Bước 2: Thực đọc/ghi nội dung – Hàm fgets(), fgetc(), fread(), fputs(), fwrite()  Bước 3: Đóng tệp tin – Hàm fclose() Slide 4/ 20 Mở tệp tin  Để mở file PHP ta sử dụng hàm fopen() theo cú pháp: fopen("filename", "mode"); Tham số Mô tả filename Chỉ tên file, URL đến file cần mở. mode Chỉ chế độ (kiểu truy xuất) mở file (r, r+, w, w+, r, r+, a, a+, x, x+) Hàm fopen() trả FALSE lỗi thất bại.Có thể thêm kí tự @ trước tên hàm không muốn hiển thị lỗi Slide 5/ 20 Mở tệp tin  Các chế độ mở file Chế độ Mô tả r Mở file để đọc(Read-Only), trỏ đọc bắt đầu vị trí file. r+ Mở file để đọc/ghi(Read-Write), trỏ đọc bắt đầu vị trí file. w Mở file để ghi(Write-Only). Mở xóa nội dung có file tạo file file chưa tồn w+ Mở file để đọc/ghi(Write-Read). Mở xóa nội dung có file tạo file file chưa tồn a Mở file để ghi(chỉ ghi). Mở ghi thêm nội dung vào cuối file tạo file file chưa tồn a+ Mở file để đọc/ghi. Mở ghi thêm nội dung vào cuối file. Nếu file chưa tồn se tạo x Mở file để ghi. Tạo file mới. Trả FALSE lỗi file tồn x+ Đọc/ghi. Tạo file mới. Trả FALSE lỗi file tồn Slide 6/ 20 Mở tệp tin  Ví dụ: Slide 7/ 20 Đóng tệp tin  Đóng file: sau thao tác xong với tệp tin ta phải đóng tệp tin lại để giải phóng luồng. Để đóng file mở ta sử dụng hàm fclose() theo cú pháp.   fclose("tên file") fopen("filename", Ví dụ "mode"); Slide 8/ 20 Thao tác với tệp tin  Để đọc nội dung file ta đọc theo dòng đọc ký tự.  Việc đọc file thực thi thông qua hỗ trợ hàm feof()  Hàm có vai trò kiểm tra kết thúc file (trả true đến cuối file).   Thường dùng để đọc liệu từ tập tin không rõ kích thước.  Chú ý: không đọc từ file mở theo chế độ: w, a, x Ví dụ: Slide 9/ 20 Đọc ký tự  Có thể sử dụng hàm fgetc() để đọc ký tự file:  Ví dụ:  Đọc ghi ký tự file kết thúc. Slide 10/ 20 Ghi nội dung vào file  Hàm fwrite() cho phép ta ghi dạng liệu vào file.  Trong trường hợp sử dụng fwrite() với tham số "w" file tồn nội dung file bị xoá trắng ghi liệu vào file.  Trong trường hợp cần ghi thêm nội dung vào file ta sử dụng hàm fwrite() với tham số mở file cho phép nối thêm. Slide 15/ 20 Ghi nội dung vào file  Ví dụ: hàm fwrite(). Slide 16/ 20 Ghi nội dung vào file  Ví dụ Ghi thêm nội dung vào file có Slide 18/ 20 Copy file  Sử dụng hàm copy() để chép file PHP copy(string $source, string $dest )  Trong $source file cần copy (file nguồn), $dest file lưu sau copy (file đích),hàm copy trả giá trị true copy Ví dụ sau minh họangược xóa file lại vanban.txt file có tồn thành công,và trả false Slide 19/ 20 Làm việc với thư mục  Hàm tạo thư mục mkdir( $pathname, $mode ) Tham số Mô tả pathname Chỉ đường dẫn tới thư mục cần tạo. mode Gán quyền truy cập liệu, mặc định 0777 (toàn quyền: ghi, xóa, sửa,…) Slide 20/ 20 Làm việc với thư mục  Hàm kiểm tra xem có phải thư mục không is_dir($dir)  Ví dụ Slide 21/ 20 Làm việc với thư mục  Hàm xóa thư mục rmdir($dir)  Ví dụ Slide 22/ 20 Làm việc với thư mục  Một số hàm khác  getcwd(): Lấy đường dẫn thư mục  dirname( $path_to_dir_or_file ):Lấy đườngdẫn thư mục cha thư mục tập tin làm việc  opendir( $path_to_dir ): Mở thư mục để làm việc  scandir( $path_to_dir): Trả mảng chứa danh sách file thư mục có thư mục $path_to_dir  rename( $oldname, $newname ): Đổi tên file thư mục  glob(): Lấy danh sách file thư mục Slide 23/ 20 Upload File  Chức upload file cho phép ta copy file lên thư mục server.  Để thực thi thao tác upload PHP hỗ trợ đối tượng nội $_FILE;  Ta có bảng lựa chọn với $_FILE:  $_FILES["filefield_name"]["name"] - lấy thiết lập tên file upload  $_FILES["filefield_name"]["type"] - định kiểu file upload  $_FILES["filefield_name"]["size"] – dung lượng file upload(tính byte)  $_FILES["filefield_name"]["error"] - lỗi trả trình upload file.  $_FILES["filefield_name"]["tmp_name"] : đối tượng lưu tạm thời server. Slide 24/ 20 A. Tạo Form upload  Tạo form để upload file đặt thuộc tính cho form sau:  Thuộc tính method giá trị POST  Thuộc tính enctype giá trị multipart/form-data (dùng liệu upload nhị phân). Please choose a file: Slide 25/ 20 Hiển thị thông tin tiến trình upload Slide 26/ 20 B.Hiệu chỉnh điều kiện upload file if ((($_FILES["imagefile"]["type"] == "image/gif") || ($_FILES["imagefile"]["type"] == "image/jpeg") || ($_FILES["imagefile"]["type"] == "image/pjpeg")) && ($_FILES["imagefile"]["size"] < 20000)) { if ($_FILES["imagefile"]["error"] > 0) { echo "Error: " . $_FILES["file"]["error"] . ""; } .GIF: image/gif .JPG: image/jpeg .PNG: image/png .WAV: audio/wav .MP3: audio/mpeg3 .DOC: application/msword .PDF: application/pdf Slide 27/ 20 else { echo "Upload: " . $_FILES["imagefile"]["name"] . ""; echo "Type: " . $_FILES["imagefile"]["type"] . ""; echo "Size: " . ($_FILES["imagefile"]["size"] / 1024) . " Kb"; echo "Stored in: " . $_FILES["imagefile"]["tmp_name"]; } } else { echo "Invalid file"; } - Trong đoạn code ta khống chế kiểu file upload dung lượng tối đa upload. Slide 28/ 20 C. Lưu file vào thư mục  Lúc file lưu đối tượng tạm thời, ta phải lưu file thư mục server. if (file_exists("upload/" . $_FILES["imagefile"]["name"])) { echo $_FILES["imagefile"]["name"] . " already exists. "; } else { move_uploaded_file($_FILES["imagefile"]["tmp_name"], "upload/" . $_FILES["imagefile"]["name"]); echo "Stored in: " . "upload/" . $_FILES["file"]["name"]; } } Slide 29/ 20 PHP - Copy image to my server direct from URL  Slide 30/ 20 [...]... sử dụng hàm fwrite() fwrite(file,string,length); Tham số Mô tả file Chỉ ra file đang được mở để ghi string Chỉ ra chuỗi dữ liệu sẽ được ghi vào file length Chỉ ra số byte tối đa được ghi vào file Hàm fwrite() trả về FALSE nếu thất bại, ngược lại trả về số byte đã được ghi vào file Có thể dùng hàm này để ghi dữ liệu nhị phân, hoặc dữ liệu kí tự Slide 14/ 20 Ghi nội dung vào file  Hàm fwrite() cho phép... enctype giá trị là multipart/form-data (dùng chỉ ra dữ liệu upload là nhị phân) Please choose a file: Slide 25/ 20 Hiển thị các thông tin về tiến trình upload < ?php if ($_FILES["file"]["error"] > 0) { echo "Error:... fwrite() cho phép ta ghi bất cứ dạng dữ liệu nào vào file  Trong trường hợp sử dụng fwrite() với tham số "w" và file đã tồn tại thì nội dung của file sẽ bị xoá trắng và ghi dữ liệu mới vào file  Trong trường hợp cần ghi thêm nội dung vào file ta có thể sử dụng hàm fwrite() với tham số mở file cho phép nối thêm Slide 15/ 20 Ghi nội dung vào file  Ví dụ: hàm fwrite() < ?php $filename = "welcome.txt"; $file... = fopen($filename, "w"); $str= "Hello\n"; fwrite($file, $str); $str= "world\n"; echo fwrite($file, $str); fclose($file); ?> Slide 16/ 20 Ghi nội dung vào file  Ví dụ Ghi thêm nội dung vào file đã có < ?php $filename = "welcome.txt"; $file = fopen($filename, "a") or die("can't open file"); $str= "New data 1\n"; fwrite($file, $str); $str= "New Data 2\n"; fwrite($file, $str); fclose($file); ?> Slide 17/... chọn Thiết lập tham số này là 1(true) nếu muốn tìm tập tin trong chuỗi include_path Chuỗi include_path có dạng như biến môi trường PATH của hệ thống Ví dụ: include_path=".;c: \php\ includes" context Tùy chọn Chỉ ra ngữ cảnh của xử lý file Có thể để tham số này là NULL nếu không cần sử dụng context tùy biến start Tùy chọn Chỉ ra vị trí trong tập tin là nơi bắt đầu đọc max_length Tùy chọn Chỉ ra bao nhiêu... file  Sử dụng hàm unlink() để xóa một file trong PHP unlink('đường dẫn tới file')  Hàm unlink() trả về FALSE nếu thất bại, ngược lại trả về TRUE Ví dụ sau minh họa xóa file vanban.txt nếu file này có tồn tại < ?php $file = 'vanban.txt'; if(file_exists($file)){ unlink($file); } ?> Slide 18/ 20 Copy file  Sử dụng hàm copy() để sao chép một file trong PHP copy(string $source, string $dest )  Trong đó... file này có tồn tại < ?php $file = 'vanban.txt'; $newfile = 'example.txt'; if (!copy($file, $newfile)) { echo "Có lỗi trong quá trình copy file $file \n"; } ?> Slide 19/ 20 Làm việc với thư mục  Hàm tạo thư mục mới mkdir( $pathname, $mode ) Tham số Mô tả pathname Chỉ ra đường dẫn tới thư mục cần tạo mode Gán quyền truy cập dữ liệu, mặc định là 0777 (toàn quyền: ghi, xóa, sửa,…) < ?php mkdir("uploads/product");... is_dir($dir)  Ví dụ < ?php if(is_dir("uploads/product")) { echo "Tồn tại thư mục"; } ?> Slide 21/ 20 Làm việc với thư mục  Hàm xóa thư mục rmdir($dir)  Ví dụ < ?php if(is_dir("uploads/product")) { rmdir ("uploads/product") ; } ?> Slide 22/ 20 Làm việc với thư mục  Một số hàm khác  getcwd(): Lấy đường dẫn thư mục  dirname( $path_to_dir_or_file ):Lấy đườngdẫn thư mục cha của thư mục hoặc tập tin đang làm việc... tên file File này không bắt buộc đã được mở bằng hàm fopen data Tham số bắt buộc Chỉ ra dữ liệu cần ri file < ?php $file = 'people.txt'; //Mở file people.txt và lấy nội dung hiện tại của nó $current = file_get_contents($file); //Nối thêm một person mới vào chuỗi chứa nội dung đọc được từ file $current = "John Smith\n"; //Ghi nội dung đọc được quay lại file file_put_contents($file, $current); ?> Slide...Đọc từng dòng  Hàm fgets() được sử dụng để đọc từng dòng từ nội dung của file:  Ví dụ sau đọc từng dòng nội dung trong file welcome.txt: < ?php $file = fopen("welcome.txt", "r") or exit("Unable to open file!"); //đọc qua từng dòng cho tới khi kết thúc while(!feof($file)){ echo fgets($file) ""; } fclose($file); ?> Slide 11/ 20 Đọc toàn bộ nội dung  Có thể . Xử lý Tệp Tin Trong PHP Xử lý Tệp Tin Trong PHP Slide 2/ 20 Mục tiêu Mục tiêu  Mở tập tin  Đọc tập tin  Ghi tập tin  Đóng tập tin Slide 3/ 20 Thao tác với tệp tin Thao tác với tệp tin  Thao. tệp tin lên server.  Ngoài ra việc thao tác với tệp tin còn cho phép ứng dụng có thể làm việc với các tệp tin XML thay cho cở sở dữ liệu. Slide 4/ 20 Thao tác với tệp tin Thao tác với tệp tin  Các. đọc(Read-Only), con trỏ đọc sẽ bắt đầu tại vị trí đầu tiên của file. r+ Mở file để đọc/ghi(Read-Write), con trỏ đọc sẽ bắt đầu tại vị trí đầu tiên của file. w Mở file để ghi(Write-Only). Mở và

Ngày đăng: 23/09/2015, 16:21

Từ khóa liên quan

Mục lục

  • Xử lý Tệp Tin Trong PHP

  • Mục tiêu

  • Thao tác với tệp tin

  • Slide 4

  • Mở tệp tin

  • Slide 6

  • Slide 7

  • Đóng tệp tin

  • Slide 9

  • Đọc từng ký tự

  • Đọc từng dòng

  • Đọc toàn bộ nội dung

  • Ghi nội dung vào file

  • Slide 14

  • Slide 15

  • Slide 16

  • Slide 17

  • Xóa file

  • Copy file

  • Làm việc với thư mục

Tài liệu cùng người dùng

Tài liệu liên quan