11
TH PHP (Thao tác với tập tin) Bài 1: Thiết kế trang như sau Kết quả sau khi nhấn Upload File Yêu cầu thiết kế: Stt Đối tượng Yêu cầu Ghi chú 1 Form - Đặt tên cho Form - Thiết lập phương thức cho Form là post - Và action của Form là tên của trang 2 Điều khiển - Sử dụng điều khiển File Field, Button Yêu cầu chức năng Stt Đối tượng Yêu cầu xử lý chức năng Ghi chú 1 Nút lệnh Upload File - Khi chọn, thực hiện: o Kiểm tra xem file upload có hợp lệ hay không, nếu không hợp lệ in ra thông báo lỗi. o Nếu hợp lệ thì upload file này vào thư mục images đã được tạo sẵn, sau đó in ra các thông tin về file: tên file, loại, kích cỡ, thư mục lưu trữ file. Sau đó đọc các tập tin trong thư mục images để xem tập tin của mình đã được upload vào hay chưa. Hiển thị như hình trên. Hướng dẫn giải Stt Đối tượng Xử lý 1 Trang - Tạo một trang tên là file_upload.php 2 Nút lệnh Upload File - Kiểm tra xem file upload có hợp lệ hay không? - Nếu hợp lệ thì dùng hàm: move_uploaded_file ($_FILES["file"]["tmp_name"], "images/" . $_FILES["file"]["name"]); để di chuyển file này vào thư mục

Thực hành PHP

Embed Size (px)

Citation preview

Page 1: Thực hành PHP

TH – PHP (Thao tác với tập tin)

Bài 1: Thiết kế trang như sau

Kết quả sau khi nhấn Upload File

Yêu cầu thiết kế:

Stt Đối tượng Yêu cầu Ghi chú

1 Form - Đặt tên cho Form

- Thiết lập phương thức cho Form là post

- Và action của Form là tên của trang

2 Điều khiển - Sử dụng điều khiển File Field, Button

Yêu cầu chức năng

Stt Đối tượng Yêu cầu xử lý chức năng Ghi chú

1 Nút lệnh

Upload

File

- Khi chọn, thực hiện:

o Kiểm tra xem file upload có hợp lệ hay

không, nếu không hợp lệ in ra thông báo lỗi.

o Nếu hợp lệ thì upload file này vào thư mục

images đã được tạo sẵn, sau đó in ra các thông

tin về file: tên file, loại, kích cỡ, thư mục lưu trữ

file. Sau đó đọc các tập tin trong thư mục

images để xem tập tin của mình đã được upload

vào hay chưa. Hiển thị như hình trên.

Hướng dẫn giải

Stt Đối tượng Xử lý

1 Trang - Tạo một trang tên là file_upload.php

2 Nút lệnh

Upload

File

- Kiểm tra xem file upload có hợp lệ hay không?

- Nếu hợp lệ thì dùng hàm:

move_uploaded_file ($_FILES["file"]["tmp_name"], "images/"

. $_FILES["file"]["name"]); để di chuyển file này vào thư mục

Page 2: Thực hành PHP

images.

- In ra các thuộc tính của file này như đã hướng dẫn trên.

- Đọc thư mục images để kiểm tra sự tồn tại của file vừa Upload

Bài 2: Tạo hai trang PHP có tên là them_bo_hoa và doc_bo_hoa như sau

Trang them_bo_hoa

Kết quả sau khi nhấn Thêm bó hoa

Trang doc_bo_hoa

Kết quả sau khi chọn Xem các bó hoa

Yêu cầu thiết kế:

Stt Đối tượng Yêu cầu Ghi chú

1 Form - Đặt tên cho Form

- Thiết lập phương thức cho Form là post

- Và action của Form là tên của trang

Page 3: Thực hành PHP

2 Điều khiển - Sử dụng điều khiển Text Field, File Field, Button

Yêu cầu chức năng

Stt Đối tượng Yêu cầu xử lý chức năng Ghi chú

1 Nút lệnh

Thêm bó

hoa

- Khi chọn, thực hiện:

Kiểm tra nội dung nhập vào và file upload. Nếu

tất cả đều hợp lệ thì ráp các thông tin về bó hoa

thành một chuỗi với định dạng như sau: /*<tên

bó hoa>|<giá bán>|<tên file hình ảnh upload>.

Ghi chuỗi này vào file hoa_xuan.txt

Sau đó hiển thị thông tin như hình trên

Khi người dùng click chọn "Xem các bó hoa"

thì link qua trang doc_bo_hoa.

Trang doc_bo_hoa đọc nội dung của tập tin

hoa_xuan.txt, định dạng lại nội dung này và

hiển thị như hình trên.

Nếu người dùng click chọn "Thêm bó hoa mới"

thì link trở lại trang them_bo_hoa.

Hướng dẫn giải

Stt Đối tượng Xử lý

1 Trang - Tạo một trang tên là them_bo_hoa.php

- Và một trang có tên là doc_bo_hoa.php

2 Nút lệnh

Thêm bó

hoa

Bước 1: Ghi vào file

- Lấy các giá trị của các điều khiển, sau đó gán vào chuỗi $noi_dung

với định dạng như sau:

noi_dung =/* tên bó hoa | giá bán | hình ảnh

- Upload hình bó hoa vào thư mục hinh_anh

- Mở file và ghi nội dung vào file.

- Hiển thị bó hoa vừa được ghi dựa trên những giá trị đã có.

- Gán cho value của các điều khiển giá trị đã có.

- Tạo link để qua trang doc_bo_hoa.php

3 Bước 2: Đọc file và hiển thị theo yêu cầu ở trang các bó hoa

- Đọc file hoa_xuan.txt và định dạng lại thành một mảng hoa:

mang_hoa= explode(“/*",$noi_dung);

- Duyệt mảng hoa, với từng phần tử trong $mang_hoa, tách thành một

mảng chứa các thông tin của một bó hoa:

mang= explode(“|”,$mang_hoa[$i]);

- Xuất các bó hoa trong một table với mỗi dòng gồm có ba bó hoa

- Tạo link để quay về trang them_bo_hoa.php

Bài 3: Thiết kế hai trang như sau

- Trang 1: tao_session

Page 4: Thực hành PHP

Kết quả sau khi nhấn Đăng nhập

- Trang 2: doc_session

Kết quả sau khi nhấn Click here! của trang tao_session

Yêu cầu thiết kế:

Stt Đối tượng Yêu cầu Ghi chú

1 Form - Đặt tên cho Form

- Thiết lập phương thức cho Form là post

- Và action của Form là tên của trang

2 Điều khiển - Sử dụng điều khiển TextField, Button

Yêu cầu chức năng

Stt Đối tượng Yêu cầu xử lý chức năng Ghi chú

1 Nút lệnh

Đăng nhập

- Khi chọn, thực hiện tính

o Lấy giá trị trên TextField sau đó gán cho các

biến session sau đó hiển thị như hình trên

o Khi người dùng chọn link thì sẽ chuyển sang

trang doc_session

o Ở trang doc_session yêu cầu đọc các biến

session đã có ở trang tao_session và hiển thị

như hình trên

o Khi người dùng chọn link thì sẽ quay trở về

trang tao_session

Page 5: Thực hành PHP

Hướng dẫn giải

Stt Đối tượng Xử lý

1 Trang - Tạo một trang tên là tao_session.php

- Và một trang tên là doc_session.php

2 Nút lệnh

Đăng nhập

- Khởi động session: dùng hàm session_start();

- Tạo và gán giá trị cho session

$_SESSION[“ten_bien”] = giá trị;

Ví dụ: $_SESSION[“ten_dn”] = $ten_dn; lấy giá trị của biến

$ten_dn và gán cho $_SESSION[“ten_dn”]

- Đọc giá trị biến session:

$gia_tri = $_SESSION[“ten_bien”];

Ví dụ: $ten_dn = $_SESSION[“ten_dn”];

Bài 4: Tạo hai trang PHP có tên là tao_cookie và doc_cookie như sau

- tao_cookie

Kết quả sau khi nhấn Xác nhận

- doc_cookie

Kết quả sau khi nhấn Click here! của trang tao_cookie

Yêu cầu thiết kế:

Stt Đối tượng Yêu cầu Ghi chú

1 Form - Đặt tên cho Form

- Thiết lập phương thức cho Form là post

- Và action của Form là tên của trang

2 Điều khiển - Sử dụng điều khiển TextField, Button

Yêu cầu chức năng

Stt Đối tượng Yêu cầu xử lý chức năng Ghi chú

Page 6: Thực hành PHP

1 Nút lệnh

Xác nhận

- Khi chọn, thực hiện tính

o Lấy giá trị trên TextField gán cho biến cookie sau

đó hiển thị như hình trên

o Khi người dùng chọn link thì sẽ chuyển sang

trang doc_cookie

o Ở trang doc_cookie yêu cầu đọc biến cookie đã có

ở trang tao_cookie và hiển thị như hình trên

o Khi người dùng chọn link thì sẽ quay trở về trang

tao_cookie

Hướng dẫn giải

Stt Đối tượng Xử lý

1 Trang - Tạo một trang tên là tao_cookie.php

- Và một trang tên là doc_cookie.php

2 Nút lệnh

Xác nhận

- Tạo và gán giá trị cho cookie

setcookie(tên biến, giá trị, thời gian);

Ví dụ: setcookie(“thong_tin”,$thong_tin, time()+3600): lấy giá

trị của biến $thong_tin và gán cho $_COOKIE[“thong_tin”]

- Đọc giá trị biến cookie:

$gia_tri = $_COOKIE[“ten_bien”];

Ví dụ: $thong_tin = $_COOKIE[“thong_tin”];

Bài 5: Tạo trang PHP như sau (khi thư mục được click chọn là "image_gallery") (BTVN)

Yêu cầu chức năng

Stt Đối tượng Yêu cầu xử lý chức năng Ghi chú

1 Không có - Đọc các thư mục con và các tập tin trong thư mục

hiện hành và hiển thị như hình trên.

- Đọc các tập tin và thư mục con trong thư mục được

click chọn.

Hướng dẫn giải

Page 7: Thực hành PHP

Stt Đối tượng Xử lý

1 Trang - Tạo một trang tên là doc_thu_muc.php

- Và một trang tên là doc_thu_muc_con.php

2 Ở trang đọc thư mục MBOOK_PHP:

- Mở thư mục MBOOK_PHP: $dir = opendir(“../MBOOK_PHP”);

- Duyệt thư mục:

while (($file = readdir($dir)) !== false)

{

Nếu là tập tin -> In tập tin

Nếu là thư mục -> In thư mục, tạo 1 link đến trang khác

và đồng thời gửi kèm theo tên thư mục:

<a href='doc_tm_con.php?ten_tm=".$file."'>$file</a>

}

Ở trang đọc thư mục con:

- Lấy tên thư mục bằng $ten_tm = $_REQUEST[“ten_tm”];

- Mở thư mục này $dir = opendir($ten_tm);

- Duyệt thư mục:

while (($file = readdir($dir)) !== false)

{

In thư mục và in tập tin

}

- Đóng thư mục

- Tạo link quay về trang doc_thu_muc.php

Bài 6: Thiết kế trang như sau (BTVN)

Kết quả sau khi nhấn Ghi và đọc file

Page 8: Thực hành PHP

Yêu cầu thiết kế:

Stt Đối tượng Yêu cầu Ghi chú

1 Form - Đặt tên cho Form

- Thiết lập phương thức cho Form là post

- Và action của Form là tên của trang

2 Điều khiển - Sử dụng điều khiển TextField, Button

Yêu cầu chức năng

Stt Đối tượng Yêu cầu xử lý chức năng Ghi chú

1 Nút lệnh

Ghi và đọc

file

- Khi chọn, thực hiện:

Định dạng nội dung mà người dùng nhập vào

theo cấu trúc: tên hàng \t số lượng \t đơn giá \t

thành tiền \n

Mở file mặc định là tap_tin/sp.txt hay do người

dùng nhập.

Ghi nội dung vào file này.

Sau đó mở và xuất nội dung trong file này như

hình trên.

Hướng dẫn giải

Stt Đối tượng Xử lý

1 Trang - Tạo một trang tên là ghi_file_dinh_dang.php

2 Nút lệnh

Ghi và đọc

file

- Lấy các giá trị của các điều khiển, sau đó gán vào chuỗi $noi_dung

với định dạng như sau:

$noi_dung = tên hàng \t số lượng \t đơn giá \t thành tiền \n

- Mở file và ghi nội dung vào file.

- Đọc file và định dạng lại mỗi sản phẩm là một mảng bằng hàm

explode("\t",$noi_dung);

- Xuất mảng dưới dạng table như yêu cầu

Bài 7: Thiết kế trang như sau (BTVN)

Page 9: Thực hành PHP

Kết quả sau khi nhấn Show Gallery

Yêu cầu thiết kế:

Stt Đối tượng Yêu cầu Ghi chú

1 Form - Đặt tên cho Form

- Thiết lập phương thức cho Form là post

- Và action của Form là tên của trang

2 Điều khiển - Sử dụng điều khiển List/Menu, Button

o Trong đó: List/Menu thư mục là danh sách các

thư mục có trong thư mục gốc "image_gallery"

(gợi ý: dùng các hàm đọc và liệt kê thư mục để

đọc các thư mục con trong thư mục này)

o List/Menu size gồm các kích cỡ: 50, 100, 150,

200

Yêu cầu chức năng

Stt Đối tượng Yêu cầu xử lý chức năng Ghi chú

1 Nút lệnh

Show

Gallery

- Khi chọn, thực hiện:

Đọc tất cả các tập tin hình ảnh có trong thư mục được

chọn và hiển thị nó với kích cỡ được chọn như hình

trên (Gợi ý: tạo một mảng các loại file hình ảnh, sau

đó khi duyệt từng tập tin trong thư mục so sánh đuôi

của tập tin là một trong các phần tử của loại file thì

hiển thị file này).

Bài 8: Thiết kế trang như sau (BTVN)

o Phần 1: Thêm vào món ăn mới:

Page 10: Thực hành PHP

Kết quả sau khi nhấn Thêm món ăn chính là màn hình như trên

o Phần 2: Hiển thị các món ăn:

Khi chưa click chọn loại món ăn, hiển thị món đầu tiên:

Khi chọn loại món ăn (Ví dụ: món "Xào": hiển thị tất cả các món xào)

Yêu cầu thiết kế:

Stt Đối tượng Yêu cầu Ghi chú

1 Form - Đặt tên cho Form

- Thiết lập phương thức cho Form là post

- Và action của Form là tên của trang

2 Điều khiển - Sử dụng điều khiển TextField, TextArea,

List/Menu, Button

- File field: dùng để upload file hình ảnh liên quan

tới món ăn

- List/Menu: đọc tập tin mon.txt và gán vào danh

sách món ăn.

Yêu cầu chức năng

Stt Đối tượng Yêu cầu xử lý chức năng Ghi chú

1 Nút lệnh

Cập nhật

- Khi chọn, thực hiện:

Ghi các nội dung của món ăn mới này vào tập tin

mon_an.txt.

Hiển thị các thông tin về món ăn trên Form như

hình trên.

Trong đó, định dạng hiển thị như sau:

Tên món ăn tô đậm màu.

Cách chế biến được in xuống dòng theo

Page 11: Thực hành PHP

cách nhập của người dùng

2 Không - Phía dưới Form thêm món ăn hiển thị một bảng

gồm hai cột: Một cột dùng để hiển thị danh sách các

món ăn, một cột dùng để hiển thị thông tin món ăn.

- Khi người dùng chưa chọn loại món ăn thì hiển thị

thông tin của món ăn đầu tiên trong tập tin

mon_an.txt, còn khi người dùng chọn loại món ăn

nào, thì hiển thị thông tin các món ăn thuộc loại

món ăn đó.

- Hiển thị như hình trên

Hướng dẫn giải

Stt Đối tượng Xử lý

1 Trang - Tạo một trang tên là mon_an.php

- Tạo Form theo yêu cầu.

- Đọc các loại món ăn có trong tập tin tap_tin/loai.txt và gán danh sách

vào List/Menu

2 Nút lệnh

Cập nhật Bước 1: Ghi vào file

- Lấy các giá trị của các điều khiển, sau đó gán vào chuỗi $noi_dung

với định dạng như sau:

$noi_dung =/* loại món | tên món | chế biến | hình

- Upload hình món ăn vào thư mục hinh_anh

- Mở file và ghi nội dung vào file.

- Gán cho value của các điều khiển giá trị đã có.

3 Trang Bước 2: Đọc file và hiển thị theo yêu cầu

- Hiển thị các loại món ăn:

- Đọc file loai.txt và định dạng lại thành một mảng loại:

$mang_loai= explode(“/*",$noi_dung);

- Duyệt mảng loại, với từng phần tử trong $mang_loai, tách thành một

mảng chứa các thông tin của một loại món:

$mang= explode(“|”,$mang_loai[$i]);

- Xuất các loại món ăn dạng Hyperlink có kèm theo mã loại.

- Hiển thị các món ăn:

- Đọc file mon_an.txt và định dạng lại thành một mảng món:

$mang_mon= explode(“/*",$noi_dung);

- Duyệt mảng món ăn, với từng phần tử trong $mang_mon, tách thành

một mảng chứa các thông tin của một món ăn:

$mang= explode(“|”,$mang_loai[$i]);

- Lấy giá trị của loại món ăn: $ml=$_REQUEST[“ML”];

Nếu $ml==“” thì in ra món ăn đầu tiên.

Nếu $ml<>”” thì in ra các món ăn có mã loại giống với $ml như

yêu cầu