intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Các thẻ xử lý font chữ

Chia sẻ: Le Tuan Huy | Ngày: | Loại File: DOC | Số trang:104

87
lượt xem
14
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Cấu trúc của 1 thẻ trong HTML bao gồm: - Dấu "".

Chủ đề:
Lưu

Nội dung Text: Các thẻ xử lý font chữ

  1. Cấu trúc của 1 thẻ trong HTML bao gồm: - Dấu "
  2. bản căn giữa, có lề trái = 10, lề phải bằng 5, lề trên = 6, lề dưới = 6. Hết tí thứ 2. Thử ba tí. Tí thứ 3 này xác định đoạn văn bản căn trái, các lề đặt theo mặc định của trình duyệt Thử ba tí. Tí thứ 3 này xác định đoạn văn bản căn trái, các lề đặt theo mặc định của trình duyệt b. Thẻ xuống dòng Trong HTML, các ký tự xuống dòng không được sử dụng. Để ngắt một dòng nào đó, ta dùng thẻ . Đây là 1 thẻ đơn: HTML Code: Trung thu là tết thiếu nhiTại sao người lớn lại đi chơi nhiều Chơi nhiều thì sẽ làm liềuLàm liều lại đẻ ra nhiều thiếu nhi Chú ý: Một cặp thẻ khác cũng được sử dụng để canh chỉnh đoạn tài liệu hay bảng biểu: - …: Xác định canh chỉnh một đoạn tài liệu hoặc bảng biểu vào giữa trang. Cấu trúc của một file HTML có dạng: Các thẻ xử lý font chữ: a. Thẻ Meta: Thẻ này có nhiều thuộc tính khác nhau và cũng làm nhiều nhiệm vụ khác nhau. Tuy nhiên ở đây tôi chỉ nói về cách ứng dụng thẻ này để hiển thị các đoạn mã tiếng Việt. Trước đây các loại font chữ tiếng Việt rất phong phú, điều này khiến cho người sử dụng tiếng Việt trên thế giới phải than trời ầm ỹ cả lên. Rất may là tại thời điểm này, hầu hết các font chữ tiếng Việt thời "đồ đá" không còn được ứng dụng trong thiết kế web nữa, thay vào đó là các chuẩn quốc tế Unicode. Ở đây tôi xin giới thiệu 2 chuẩn Unicode tiếng Việt phổ biến và cách sử dụng thẻ meta cho từng trường hợp cụ thể: - Mã UTF-8: Là mã font Unicode rút gọn (biểu diễn font chữ theo kiểu 8 bit. Khi ta khai báo: Trình duyệt sẽ hiểu là từ khi đọc được dòng chữ này, nó sẽ giải mã các ký tự theo kiểu UTF-8. Và khi bạn gửi dữ liệu từ mẫu biểu của HTML đi, dữ liệu đó cũng phải được mã hoá theo tiêu chuẩn UTF-8. Chẳng hạn, để trình duyệt hiển thị đúng bài thơ: Trung thu là tết thiếu nhi Tại sao người lớn lại đi chơi nhiều Chơi nhiều thì sẽ làm liều Làm liều lại đẻ ra nhiều thiếu nhi. 2
  3. Thì đoạn mã HTML do ta sinh ra phải có dạng: Trung thu là tết thiếu nhiTại sao ngÆ°á»i lá»›n lại Ä‘i chÆ¡i nhiá»u ChÆ¡i nhiá»u thà sẽ là m liá»uLà m liều lại đẻ ra nhiều thiếu nhi. Tất nhiên chúng ta có thể sử dụng chương trình Vietkey hoặc Unikey để gõ tiếng việt theo kiểu UTF- 8 (sử dụng bảng mã Unicode UTF-8), nhưng sẽ hơi khó chịu một tí . - Mã UTF-16 bít: Là mã font Unicode 16 bít. Ta phải khai báo như sau: Trình duyệt sẽ hiểu là từ khi đọc được dòng chữ này, nó sẽ giải mã các ký tự theo kiểu UTF-16 bit. Và khi bạn gửi dữ liệu từ mẫu biểu của HTML đi, dữ liệu đó cũng phải được mã hoá theo tiêu chuẩn UTF- 16 bít trên. Chẳng hạn, để trình duyệt hiển thị đúng bài thơ: Trung thu là tết thiếu nhi Tại sao người lớn lại đi chơi nhiều Chơi nhiều thì sẽ làm liều Làm liều lại đẻ ra nhiều thiếu nhi. Thì đoạn mã HTML do ta sinh ra phải có dạng: Trung thu l#224; t#7871;t thi#7871;u nhiT#7841;i sao ng#432;#7901;i l#7899;n l#7841;i #273;i ch#417;i nhi#7873;u.Ch#417;i nhi#7873;u th#236; s#7869; l#224;m li#7873;uL#224;m li#7873;u l#7841;i #273;#7867; ra nhi#7873;u thi#7871;u nhi Tất nhiên chúng ta có thể sử dụng chương trình Vietkey hoặc Unikey để gõ tiếng Việt theo chuẩn này với hệ thống bảng mã Unicode UCS2 Chú ý: 1: Một số chương trình soạn thảo có hỗ trợ chế độ hiển thị mã tiếng Việt trong quá trình soạn thảo. Khi đó nếu các bạn mở chế độ mã HTML mà vẫn đọc được tiếng Việt như thường thì các bạn cứ ung dung gõ tiếng Việt theo kiểu Unicode thông thường là được. Còn nếu nó hiển thị ra các ký tự loằng ngoằng thì các bạn phải đoán mò ra dạng chuẩn mã hoá font của nó và sử dụng chế độ gõ chữ tương ứng. 2: Trong tài liệu này tôi sẽ đánh tiếng Việt thông thường, các bạn sẽ phải chịu trách nhiệm xử lý mã tiếng Việt trong các đoạn ví dụ. b) Cặp thẻ … Cặp thẻ này quy định tên font, màu sắc, kích cỡ font. Nó có những thuộc tính sau: Face: Tên của font, chẳng hạn: Arial, .VnTime, Times New Roman Size: Kích cỡ của font, bé nhất là 1. Color: Màu sắc cùa font, bao gồm dấu # và 6 chữ số hex tiếp theo quy định mã màu RGB Ví dụ: Tết trung thu 3
  4. Trung thu là tết thiếu nhiTại sao người lớn lại đi chơi nhiều Chơi nhiều thì sẽ làm liềuLàm liều lại đẻ ra nhiều thiếu nhi c. Các thẻ định dạng chữ nghiêng, đậm, gạch chân: - Định dang chữ đậm: Cặp thẻ … xác định đoạn văn bản ở giữa sẽ bị in đậm. Cặp thẻ này không có tham số kèm theo. - Định dang chữ nghiêng: Cặp thẻ … xác định đoạn văn bản ở giữa sẽ bị in nghiêng. Cặp thẻ này không có tham số kèm theo. - Định dang chữ gạch chân: Cặp thẻ … xác định đoạn văn bản ở giữa sẽ bị gạch chân. Cặp thẻ này không có tham số kèm theo. Ví dụ: Tết trung thu Trung thu là tết thiếu nhiTại sao người lớn lại đi chơi nhiều Chơi nhiều thì sẽ làm liềuLàm liều lại đẻ ra nhiều thiếu nhi Các thẻ xử lý đoạn a). Thẻ phân chia đoạn Trong HTML, các đoạn tài liệu, văn bản, hình ảnh… được phân chia bằng cặp thẻ văn bản Thẻ có 1 số thuộc tính sau: Align: Thuộc tính này sẽ chứa 1 trong 3 giá trị: - center: Đoạn tài liệu sẽ được canh chỉnh vào giữa - left: Đoạn tài liệu sẽ được canh chỉnh theo lề trái - right: Đoạn tài liệu sẽ được canh chỉnh theo lề phải - justify: Đoạn tài liệu sẽ được canh chỉnh theo hai bên Ví dụ: Thử một tí Style: Thuộc tính này sẽ quy định khoảng cách lề của đoạn. Trong thuộc tính này lại có các thuộc tính con, tuy nhiên các thuộc tính con này được đặt cách nhau bằng dấu chấm phẩy. Tất nhiên các bạn cũng có thể loại bỏ thuộc tính con: - margin-left : x (x là số nguyên chỉ định chiều rộng của lề trái) - margin-right : y (y là số nguyên chỉ định chiều rộng của lề phải) - margin-top: z (z là số nguyên chỉ định chiều rộng của lề trên) - margin-bottom: t(t là số nguyên chỉ định chiều rộng của lề dưới) - line-height: u% (u: khoảng cách giữa các dòng tính theo đơn vị 100 %) Ví dụ: Th ử hai tí. Tí thứ 2 này xác định đoạn văn bản căn giữa, có lề trái = 10, lề phải bằng 5, lề trên = 6, lề dưới = 6. Hết tí thứ 2. Thử ba tí. Tí thứ 3 này xác định đoạn văn bản căn trái, các lề đặt theo mặc định của trình duyệt 4
  5. Thử ba tí. Tí thứ 3 này xác định đoạn văn bản căn trái, các lề đặt theo mặc định của trình duyệt . Thẻ xuống dòng Trong HTML, các ký tự xuống dòng không được sử dụng. Để ngắt một dòng nào đó, ta dùng thẻ . Đây là 1 thẻ đơn: Trung thu là tết thiếu nhiTại sao người lớn lại đi chơi nhiều Chơi nhiều thì sẽ làm liềuLàm liều lại đẻ ra nhiều thiếu nhi Chú ý: Một cặp thẻ khác cũng được sử dụng để canh chỉnh đoạn tài liệu hay bảng biểu: - …: Xác định canh chỉnh một đoạn tài liệu hoặc bảng biểu vào giữa trang. Các thẻ liên kết: a. Thẻ liên kết với hình ảnh: Trong HTML, chúng ta không thể chèn trực tiếp toàn bộ ruột gan của một file hình ảnh, mà ta phải chỉ dẫn đến hình ảnh đặt bên ngoài. Để làm điều này, ta dùng thẻ . Đây là 1 thẻ đơn. Thẻ này có một số thuộc tính sau: - Src: Xác định địa chỉ URL của hình ảnh: - align: Xác định kiểu canh lề: - right: Canh theo lề phải - left:Canh theo lề trái - center:Canh theo lề giữa. Trung thu là tết thiếu nhiTại sao người lớn lại đi chơi nhiều Chơi nhiều thì sẽ làm liềuLàm liều lại đẻ ra nhiều thiếu nhi - border: Xác định chiều dày của viền bao quanh ảnh. Trung thu là tết thiếu nhiTại sao người lớn lại đi chơi nhiều Chơi nhiều thì sẽ làm liềuLàm liều lại đẻ ra nhiều thiếu nhi b. Thẻ liên kết trang web. 5
  6. Để tạo một liên kết tới một trang web khác, ta dùng cặp thẻ . Cặp thẻ này có các thuộc tính sau: Href: Địa chỉ URL của trang web cần liên kết tới. bạn đã có một bookmark trên trang web, bạn có thể trỏ đến vị trí của bookmark bằng cách dùng thuộc tính href với dấu # và tên bookmark. name: Xác định tên của bookmark (điểm liên kết trong nội tại trang web). Ví dụ, ta có 2 trang web: Trang thứ nhất có địa chỉ là "tettrungthu.htm", có nội dung sau: Trung thu là tết thiếu nhiTại sao người lớn lại đi chơi nhiều Chơi nhiều thì sẽ làm liềuLàm liều lại đẻ ra nhiều thiếu nhi Trang thứ 2 có tên là danhsachthovui.htm, có nội dung sau: Tet trung thu Giả sử ta muốn thêm một liên kết với file "tettrungthu.htm" vào chữ Tet trung thu trong file danhsachthovui.htm, ta phải chèn cặp thẻ ... như sau: Tet trung thu Chú ý: cả 2 file này phải được đặt cùng thư mục. Trong trường hợp đặt khác thư mục các bạn phải ghi rõ đường dẫn đến file kia. Các cặp thẻ xử lý bảng: Các bảng trong HTML được định nghĩa như sau: Định nghĩa 1 bảng bởi cặp thẻ Trong 1 bảng (table) được chia làm nhiều dòng , mỗi dòng giới hạn bởi 1 cặp thẻ . Trong mỗi dòng lại có các ô , giới hạn bởi cặp thẻ Chẳng hạn để định nghĩa 1 bảng gồm có 1 dòng và 3 ô, ta làm như sau: Ô thứ nhất Ô thứ 2 Ô thứ 3 6
  7. Hoặc để định nghĩa một bảng gồm 2 dòng, mỗi dòng 3 ô: Ô thứ nhất dòng 1 Ô thứ 2 dòng 1 Ô thứ 3 dòng 1 Ô thứ nhất dòng 2 Ô thứ 2 dòng 2 Ô thứ 3 dòng 2 Chú ý: Số lượng các ô trong các dòng phải bằng nhau, nếu 1 dòng nào đó có số ô khác với dòng khác, bảng sẽ bị "vỡ kế hoạch". Để khắc phục điều này, ta phải tính trước trong 1 bảng, số lượng tối đa các ô của 1 dòng sẽ là bao nhiêu, sau đó có thể dùng thuộc tính colspan của thẻ để gộp các ô trống trong cùng 1 hàng lại với nhau. Thuộc tính colspan sẽ chỉ định số lượng các ô được gộp vào nhau trên một hàng. Chẳng hạn: Chập ô thứ nhất và ô thứ 2 của dòng 1 Ô thứ 3 dòng 1 Ô thứ nhất dòng 2 Ô thứ 2 dòng 2 Ô thứ 3 dòng 2 Một số thuộc tính có liên quan: Thẻ Table: - border: Xác định độ dày của khung bao quanh bảng - bordercolor: Màu của khung bao quanh, viết dưới dạng dấu # và 6 chữ số HEX tiếp theo. - cellspacing: Xác định khoảng cách giữa các ô trong bảng. - width: Xác định độ rộng của bảng - background: Xác định hình ảnh sẽ được sử dụng để làm nền cho toàn bảng - bgcolor: Xác định màu nền của bảng, viết theo kiểu #XXXXXX (số HEX). Thẻ - width: Độ rộng của ô - height: Chiều cao của ô - colspan: Xác định bao nhiêu ô tính từ ô đó sẽ được chập vào làm 1 (trên cùng 1 dòng) - rowspan: Xác định bao nhiêu ô tính từ ô đó sẽ được chập vào làm 1 (trên cùng 1 cột). - background: Xác định hình ảnh sẽ được sử dụng để làm nền cho ô - bgcolor: Xác định màu nền ô, viết theo kiểu #XXXXXX (số HEX). Bài 7: Các câu lệnh gán và rẽ nhánh: Các câu lệnh trong ngôn ngữ lập trình Để lập trình giải một bài toán nào đó, chúng ta phải sử dụng các câu lệnh sau: 1. Lệnh gán: được sử dụng để đặt một giá trị vào một biến nào đó. 2. Lệnh rẽ nhánh: Được sử dụng để xác định xem chương trình sẽ thực hiện công việc gì trong điều kiện ra sao 3. Lệnh lặp: Cho phép chương trình của bạn tự động lặp lại các thao tác nào đó Quá trình xây dựng các bước để thực hiện một bài toán nào đó, gọi là quá trình xây dựng thuật giải. 1. Lệnh gán 7
  8. Lệnh này đã được học ở bài trước: Cú pháp: $ten_bien = gia_tri; Ví dụ: $ngay_sinh="1/4/1980"; $que_quan="Thanh Hoa"; $luong=300000; 2. Các câu lệnh rẽ nhánh Trong PHP có 2 dạng rẽ nhánh: rẽ hai nhánh (if) và rẽ nhiều nhánh. Lệnh rẽ nhánh là một trong những câu lệnh quan trọng nhất của tất cả các ngôn ngữ lập trình. Nó cho phép bạn thực thi một đoạn mã khi mà điều kiện chỉ định là đúng. Trong PHP, lệnh rẽ nhánh có dạng sau: if (điều kiện) { công việc cần làm } Ví dụ: if ($name="Sinh") { echo ("Good morning, my boss"); } Nếu khối câu lệnh cần làm chỉ bao gồm duy nhất một dòng lệnh, ta có thể bỏ cặp dấu {} : if ($name="Sinh") echo ("Good morning, my boss"); Nhưng nếu nhiều hơn một dòng lệnh, ta phải đưa chúng vào cặp dấu ngoặc {}: if ($name=="Sinh") { echo ("Good morning, my boss"); echo ("Have a romantic day!"); } Đoạn lệnh trên sẽ kiểm tra nếu điều kiện biến $name = "Sinh" thì nó sẽ hiển thị lời chào. Còn nếu không thì nó không làm gì cả! Điều kiện đặt vào có thể là đúng, có thể là sai, có thể là tổng hợp của nhiều điều kiện. Hãy xem ví dụ sau: if ("false" ) echo ("Khong co gi ca"); if (($name=="sinh") && ($pass=="test")) echo ($name. "đã nhập đúng password"); Đoạn lệnh trên có thể viết tương đương với: if ($name=="sinh") { if ($pass=="test") echo ($name. "đã nhập đúng password"); } Như bạn thấy ở trên, trong một câu lệnh, chúng ta có thể chèn nhiều đoạn lệnh khác, người ta gọi đó là cấu trúc khối, tức là trong một khối lệnh, có thể có chứa nhiều khối lệnh con khác. Nếu bạn phải đọc mã nguồn của người khác, hi vọng bạn không bị hoa mắt vì hàng chục khối lệnh chen chúc vào nhau như vậy. Chúng ta có thể sử dụng các toán tử &&, || hay xor để kết nối các điều kiện với nhau như bạn thấy ở trên Câu lệnh rẽ nhánh đầy đủ: Nếu điều kiện kiểm tra trả về false (sai), PHP cho phép chúng ta chỉ định thực thi một khối mã lệnh khác bằng từ khoá else Ví dụ: 8
  9. if (($name=="sinh") && ($pass=="test")) { echo ("Good day, ".$name); } else { echo {"Sai mat khau!") } Chú ý đến một ngoại lệ sau: Trước từ khoá else không bao giờ có dấu chấm phẩy (. Lệnh rẽ nhiều nhánh: Với câu lệnh if, PHP cho phép chúng ta rẽ nhiều nhánh thông qua từ khoá elseif: if (dieu_kien1) { doan_lenh_1; } elseif (dieu_kien_2) { doan_lenh_2 } elseif (dieu_kien_3) } // bao nhiêu từ khoá elseif cũng được else { doan_lenh_n } Ví dụ: if ($thu==2) { echo ("Chao co, van, su, ly"); } elseif ($thu==3) { echo (" Hoa, Sinh, Dia, GDCD"); } elseif ($thu==4) { echo ("KTCN, Van, Toan, Tieng Anh"); } elseif ($thu==5) { echo (" Hoa, Toan, Van, Tin"); } elseif ($thu==6) { echo ("Toan, Van, Anh, Sinh hoat"); } else { echo ("Duoc di choi"); } Trong ví dụ trên, chúng ta đã lặp đi lặp lại thao tác kiểm tra giá trị của biến $thu, mặc dù nó không thay đổi qua các dòng. Để khắc phục sự dài dòng này, PHP cho phép ta sử dụng câu lệnh switch. Câu lệnh này sẽ được sử dụng để kiểm tra khi muốn xem xét qua nhiều giá trị của một biến: 9
  10. switch ($bien){ Case gia_tri 1: doan_lenh_1; break; Case gia_tri 2: doan_lenh_2; break; Case gia_tri n: doan_lenh_n; break; default: doan_lenh_khac; } Ví dụ: switch ($thu){ case 2: echo ("Chao co, van, su, ly"); break; case 3: echo (" Hoa, Sinh, Dia, GDCD"); break; case 4: echo ("KTCN, Van, Toan, Tieng Anh"); break; case 5: echo (" Hoa, Toan, Van, Tin"); break; case 6: echo ("Toan, Van, Anh, Sinh hoat"); break; default: echo ("Duoc di choi"); } Câu lệnh switch sẽ ước lượng giá trị của biến $thu, và so sánh nó với giá trị của mệnh đề case. Khi một giá trị hợp lệ được tìm thấy, nó sẽ thực hiện câu lệnh tương ứng với giá trị đó. Còn nếu không, nó sẽ tự động thực hiện câu lệnh trong mệnh đề default. Hãy chú ý rằng mệnh đề defaul là tuỳ chọn (bạn có thể có nó hoặc không cần nó) Chú ý: Sau mỗi mệnh đề trong câu lệnh switch, cần phải sử dụng câu lệnh break. Nếu không thì chương trình sẽ ... thực thi tất tần tật các đoạn mã lệnh nằm trong câu lệnh switch. Bài 8: Các câu lệnh lặp Lệnh điều khiển vòng lặp Điều khiển vòng lặp, tức là bạn điều khiển chương trình của bạn tự động thực hiện một đoạn mã lệnh nào đó lặp đi lặp lại nhiều lần (lặp một số lượng lần nào đó, hoặc lặp cho đến khi thoả mãn một điều kiện nào đó). PHP cung cấp cho chúng ta hai kiểu vòng lặp: vòng lặp while (lặp kiểm tra điều kiện, cho đến khi điều kiện được thoả mãn) và vòng lặp for (xác định số lần lặp lại) a) Vòng lặp while Vòng lặp while là một dạng vòng lặp đơn giản nhất, cấu trúc của nó gần giống như lệnh if: while (điều kiện) { //Khoi cau lenh can lap } Vòng lặp while sẽ ước lượng một biểu thức giá trị kiểu boolean (đúng hoặc sai).Nếu giá trị của biểu thức là false, đoạn mã trong cặp dấu ngoặc (đoạn mã cần lặp) sẽ được bỏ qua và nhảy đến đoạn mã sau vòng lặp. Nếu giá trị của nó là true, đoạn mã trong cặp dấu ngoặc sẽ được thực thi. Khi bắt gặp 10
  11. dấu ngoặc ôm ("}") , điều kiện kiểm tra sẽ được tính toán lại, và nếu giá trị vẫn là true, đoạn mã trong ngoặc lại tiếp tục được thực thi. Chú ý rằng điều kiện lặp chỉ được tính toán tại thời điểm bắt đầu lặp. Vì vậy, dù điều kiện lặp có bị thay đổi trong quá trình thực thi đoạn lệnh trong cặp dấu {} thì đoạn lệnh đó vẫn được tiếp tục thực hiện cho đến hết. Muốn dừng lại ở một vị trí xác định nào đó trong khối câu lệnh, chúng ta sử dụng lệnh break: Ví dụ1: Tính tổng từ 1 đến 5: Ví dụ 2: Đoạn mã sau sẽ hiển thị trên trình duyệt 3 ô textbox (Với điều kiện bạn phải save nó dưới một file *.php : b. Vòng lặp do...while Vòng lặp này giống như vòng lặp while, nhưng thay vì kiểm tra điều kiện vào lúc đầu của đoạn lệnh cần lặp, thì nó lại kiểm tra giá trị điều kiện vào cuối vòng lặp. Điều này có nghĩa là nó luôn luôn thực hiện đoạn lệnh cần lặp ít nhất một lần. Cấu trúc của nó như sau: do { Đoạn (khối) câu lệnh cần lặp } while (điều kiện); Ví dụ:
  12. ?> Để xác định lại sự khác nhau của 2 câu lệnh trên, đơn giản bạn chỉ việc thay điều kiện $i Đoạn mã trên chỉ cho phép tính đến 8 giai thừa, nếu người dùng nhập một con số lớn hơn 8 thì máy sẽ hiển thị 8 giai thừa, còn nếu nhỏ hơn thì vẫn chạy tốt. c) Vòng lặp for. Vòng lặp for, với ý nghĩa đầu tiên là lặp với số lần định trước, có cấu trúc như sau: for ( $biến = giá_trị_đầu; $biến < (hay
  13. Bài 9: Mảng Là một danh sách các phần tử có cùng kiểu dữ liệu.Mảng có thể là mảng một chiều hay nhiều chiều. Mảng có 2 thành phần là chỉ mục (key) và giá trị. Chỉ mục có thể là số nguyên hoặc là chuỗi . Bạn có thể khởi tạo mảng bằng các cách như sau: $arr[key] = value; $arr[] = value; $arr= array($key1 =>value1,$key2=>value2); $arr = array(value1, value2); Như đã giới thiệu thì mảng có thể dùng số nguyên hoặc chuỗi để làm chỉ mục , ta tạm thời phân loại ra nhu sau: 1.Mảng một chiều có chỉ mục: là mảng được quản lý bằng cách sử dụng chỉ số dưới kiểu integer để biểu thị vị trí của giá trị yêu cầu.Cú pháp: $name[index1]; Ví dụ: một mảng một chiều có thể được tạo ra như sau: $meat[0]="chicken"; $meat[1]="steak"; $meat[2]="turkey"; Nếu bạn thực thi dòng lệnh sau: print $meat[1]; thì trên trình duyệt sẽ hiển thị dòng sau: steak. Bạn cũng có thể sử dụng hàm array( ) của PHP để tạo ra một mảng.Ví dụ: $meat=array("chicken","steak","turkey"); Lưu ý : Khác với các ngôn ngữ lập trình khác ( nhu Pascal chẳng hạn) , phần tử đầu tiên của mảng có chỉ mục là 0 , không phải 1 . Nhưng khi khai báo mảng , chỉ mục khởi đầu không nhất thiết là 0 . ví dụ bạn tạo mảng thế này $meat = array("chicken","steak","tukey"); Để lấy phần tử đầu tiên bạn sẽ gọi echo $meat[0]; Nhưng nếu khia báo thế này $arr[5] = 1; thì chỉ mục tiếp theo là 6. $arr[] = 3; // key là 6 nhá. Nhớ kỹ đều này nhá , lúc đầu tớ cũng bị PHP lừa về chuyện này đấy ( do trước đây chỉ học Pascal). 2.Mảng một chiều kết hợp: rất thuận lợi khi dùng để ánh xạ một mảng sử dụng các từ hơn là sử dụng các số ( integer), nó giúp ta giảm bớt thời gian và các mã yêu cầu để hiển thị một giá trị cụ thể. Ví dụ: bạn muốn ghi lại tất cả các thức ăn và các cặp rượu ngon trong việc ăn nhậu của mình. $annhau["ruou"] = "Minh Mạng Tửu"; $annhau["khaivi"] = "Lạc rang"; $annhau["Trangmieng"] = "Chuối"; Một cách khác là bạn có thể sử dụng hàm array( ) của PHP để tạo ra một mảng loại này, ví dụ như sau: $annhau = array( "ruou" => "Minh Mạng Tửu", "khaivi" => "Lạc Rang", "trangmieng" => "Chuối"); Khi truy xuất phần tử mảng : echo $annhau["ruou"]; Sẽ xuất ra : Minh Mạng Tửu 3.Mảng nhiều chiều có chỉ mục: chức năng của nó cũng giống như mảng một chiều có chỉ mục, ngoại trừ việc nó có thêm một mảng chỉ mục được dùng để chỉ định một phần tử. Cú pháp: $name[index1] [index2]..[indexN]; Một mảng hai chiều có chỉ mục được tạo ra như sau: $position = $chess_board[5][4]; 4.Mảng đa chiều kết hợp: khá hữu ích trong PHP. Giả sử bạn muốn ghi lại các cặp rượu-thức ăn, 13
  14. không chỉ loại rượu, mà cả nhà sản xuất. Bạn có thể thực hiện như sau: $pairings["Martinelli"] ["zinfandel"] = "Broiled Veal Chops"; $pairings["Beringer"] ["merlot"] = "Baked Ham"; $pairings["Jarvis"] ["sauvignon"] = "Prime Rib"; -------------- Hết phần khái niệm , tiếp theo là giới thiệu các hàm để truy xuất mảng Để truy xuất hay nhập giá trị cho 1 phần tử mảng cụ thể , bạn có thể gọi trực tiếp chúng như sau: $arr = $mang[1]; hoặc $arr = $dothi["x"]; Cú pháp là tên mảng[chỉ mục] Tips : Để xóa 1 phần tử ra khỏi mảng , ta dùng unset() Ví dụ $arr = array(1,2,3,4); unset($arr[2]); // $arr bay giờ là array(1,2,4); Để điếm các phần tử của mảng , dùng hàm count() $arr = array(1,2,3,4); $so = count($arr); // đố bạn bằng bao nhiu ? Để duyệt qua hết tất cả các phần tử của mảng (truy xuất hoặc nhập giá trị) ta dùng các cách sau: Cách thứ nhất , dùng vòng lập for Nếu biết trước số phần tử của mảng ta có thể dùng vòng lặp for để duyệt qua các phần tử mảng: Code: Chạy đoạn mã trên PHP sẽ xuất ra từ 1 đến 10 . Để nhập giá trị vào thì cũng thế nhá Ví dụ Code: Cách thứ 2 : Dùng Foreach Cú pháp : Quote foreach (array_expression as $value) statement foreach (array_expression as $key => $value) statement Ví dụ Code: Với foreach này để nhập giá trị vào ta phải thêm dấu " &" trước biến $value , như thế này &$value Code:
  15. foreach ($arr as &$value) { $value = $value * 2; } // $arr is now array(2, 4, 6, 8) ?> Thêm 1 ví dụ nữa , lần này sẽ có sự xuất hiện của chỉ mục Code: Một cách khác để làm như trên ta sẽ dùng vòng lặp while đi với list() và each(). Xét ví dụ sau , thay vì dùng foreach như trên thì ta dùng while như sau: Code: Lưu ý , list() chỉ hoạt động với mảng có chỉ mục là số và phần tử khởi đầu của mảng có chỉ mục là 0 ( PHP manual nói thế) List sẽ gán giá trị cho biến được khai báo bên trong hàm list với giá trị là giá trị tương ứng của mảng. Còn hàm each() sẽ trả về giá trị chỉ mục và giá trị của phần tử mảng hiện tại , đồng thời chuyển vị trí của chỉ mục lên 1 đơn vị , sẽ trả về False nếu vị trí của chỉ mục là vị trí cuối cùng trong mảng.Cặp giá trị trả về này sẽ nằm trong 1 mảng 4 phần tử là 0,1 , key, value . Phần tử 0 và key chứa tên chỉ mục của mảng, phần tử 1 và value tất nhiên sẽ chứa giá trị . Có thể chỉ sử dụng while và each thôi cũng được Code:
  16. Mảng tiếp:Sắp xếp mảng Do PHP lưu trữ các phần tử trong mảng theo thứ tự chúng được đưa vào mảng, chính vì vậy đôi lúc sẽ nảy sinh nhu cầu sắp xếp các phần từ trong mảng. Để sắp xếp ta có thể dùng các hàm có sẵn của PHP, tiêu biểu là hàm sort Code: Kết quả thu được sẽ là: Quote array(6) { * => int(5) [1]=> int(3) [2]=> int(6) [3]=> int(4) [4]=> int(2) [5]=> int(1) } array(6) { * => int(1) [1]=> int(2) [2]=> int(3) [3]=> int(4) [4]=> int(5) [5]=> int(6) } Các bạn có thể thấy là các giá trị đã được sắp xếp tăng dần tuy nhiên các key cũng đã bị thay đổi. Để dữ nguyên các key ban đầu, ta sử dụng hàm asort. Thay thế hàm sort trong ví dụ bằng asort thì sẽ thu được kết quả như sau: Quote array(6) { * => int(5) [1]=> int(3) [2]=> int(6) [3]=> int(4) [4]=> int(2) [5]=> int(1) } array(6) { [5]=> int(1) [4]=> int(2) [1]=> int(3) [3]=> int(4) * => int(5) [2]=> int(6) } Các hàm này cũng sẽ làm việc tốt đẹp với các xâu kí tự, tuy nhiên với 1 mảng có các giá trị "report1.pdf", "report5.pdf", "report10.pdf", and "report15.pdf" thì kết quả thu được sẽ là: Quote "report1.pdf", "report10.pdf", "report15.pdf", "report5.pdf" Đơn giản là vì mã ASCII của "1" nhỏ hơn "5" nên kết quả sẽ ra như vậy. Để giải quyết vấn đề này, thay vì sort và asort ta sử dụng natsort hoặc natcasesort. Kết quả thu được sẽ là: "report1.pdf", "report5.pdf", "report10.pdf", "report15.pdf" Sắp xếp mảng nâng cao Giả sử bạn có mảng nhiều chiều sau: Code: Khi muốn sắp xếp mảng $bikes theo price của mỗi phần tử thì làm thế nào? Không thể dùng các hàm ở trên được! Vậy giải pháp duy nhất là ta sẽ phải tự sắp xếp Code:
  17. if ($in_bike1["price"] > $in_bike2["price"]) { return 1; } else if ($in_bike1["price"] == $in_bike2["price"]) { return 0; } else { return -1; } } uasort($bikes, "compare_price"); foreach ($bikes as $bike) { echo "Bike {$bike['name']} costs \${$bike['price']}\n"; } ?> Trong ví dụ trên, mấu chốt chính là ở hàm uasort, hàm này sẽ so sánh từng giá trị trong mảng với nhau bằng hàm so sánh compare_price. Hàm này sẽ so sánh 2 giá trị được đưa vào là $in_bike1 và $in_bike2 rồi trả lại 1 trong 3 giá trị: 1, 0 hoặc (-1) khi so sánh price của $in_bike1 và $in_bike2. Sau cùng ta sẽ thu được kết quả: Quote Bike Off-Roadster costs $4295 Bike Slasher XYZ 1000 costs $11450 Bike Grande Tour Meister costs $12999 Sắp xếp ngược lại Trong các phần trên ta đều thấy sắp xếp tăng dần, vậy để sắp xếp giảm dần thì làm thế nào? Ta có thể sử dụng rsort và arsort thay thế cho sort và asort. Chú ý là không có ursort! Để sắp xếp ngược lại bạn chỉ cần đảo ngược thứ tự trong hàm so sánh của mình Sắp xếp theo key Để sắp xếp theo key, ta có các hàm ksort, krsort, và uksort. Sắp xếp theo key sẽ luôn giữ nguyên các key vì vậy không có kasort. Các giá trị đi kèm mỗi key cũng sẽ được giữ nguyên Các hàm khác array_merge Hàm này sẽ nhận vào 2 mảng và trả lại 1 mảng trong đó bao gồm tất cả các giá trị của 2 mảng ban đầu. Các key sẽ được giữ nguyên trừ trường hợp: 2 mảng có 1 key là xâu kí tự giống nhau, thì giá trị của mảng thứ nhất sẽ bị ghi đè bằng giá trị của key đó ở mảng thứ hai Ở mảng thứ hai nếu trùng các key là số nguyên với mảng thứ nhất, thì các giá trị của mảng thứ hai sẽ nhận 1 key mới (không ghi đè) Xét ví dụ: Code: Kết quả thu được sẽ là: Quote Array ( [name] => Zimbu 17
  18. * => 10 [1] => 100 [2] => 2 [3] => 3 [4] => 4 ) array_combine Hàm này nhận vào 2 mảng rồi trả lại 1 mảng, trong đó các key là các giá trị của mảng thứ nhất, các giá trị là từ mảng thứ hai. Nếu 2 mảng không có cùng số phần tử sẽ báo lỗi. Xét ví dụ sau: Code:
  19. Bài 10: Cách lấy thông tin từ trình duyệt: GET, POST, COOKIES. Dữ liệu của người dùng từ trình duyệt sẽ được gửi lên máy chủ dưới dạng từng cặp biến=giá_trị và có thể đi theo 3 con đường khác nhau. Tuỳ theo từng con đường cụ thể, trên máy chủ ta cũng có các cách khác nhau để lấy dữ liệu được gửi lên.. 3 con đường đó là: GET, POST và COOKIES. Vậy GET, POST và COKIES là gì? 1. Truyền dữ liệu thông qua phương thức GET Dữ liệu gửi từ trình duyệt lên qua phương thức GET là phần dữ liệu được nhập trực tiếp theo sau địa chỉ URL do trình duyệt gửi lên, được phân biệt với tên file script bằng dấu hỏi chấm (?). Ví dụ, khi ta gõ vào trình duyệt địa chỉ URL sau: http://www.phpvn.org/topic.php?TOPIC_ID=161 Khi đó, trình duyệt sẽ gửi theo địa chỉ trên một cặp biến = giá trị, trong đó biến có tên là TOPIC_ID và giá trị là 161 (TOPIC_ID=161). Chúng ta cũng có thể đưa lên nhiều cặp biết=giá_trị bằng cách phân cách chúng bởi dấu &: PHP Viet Nam - Index Với địa chỉ URL trên, chúng ta sẽ gửi lên 3 cặp biến=giá_trị theo phương thức GET, đó là: method=Reply, TOPIC_ID=161 và FORUM_ID=20. Khi trình duyệt gửi các thông tin này lên máy chủ, PHP sẽ tự động sinh ra một mảng có tên là $_GET[] để nắm giữ tất cả các cặp biến và giá trị đó, trong đó, chỉ số của mảng chính là một chuỗi mang tên của tên biến và giá trị của chỉ số đó chính là giá trị của biến do trình duyệt gửi lên. Ví dụ, với địa chỉ URL sau: http://www.phpvn.org/post.php?method...61&FORUM_ID=20 Thì PHP sẽ tự động sinh ra một mảng $_GET có nội dung sau: $_GET["method"] = "Reply" // tương ứng với cặp method=Reply $_GET["TOPIC_ID"] = 161 // tương ứng với cặp TOPIC_ID=161 $_GET["FORUM_ID"] = 20 // tương ứng với cặp FORUM_ID=20 Sau đó, trong trang web của mình, các bạn có thể tha hồ sử dụng các biến này. Ví dụ, tôi làm một đoạn chương trình sau để khi người dùng nhập vào biến user=sinh thì cho hiển thị "Hello, my Boss", còn nếu biến user khác sinh thì "Hello " + giá trị của biến: Code: OK, bây giờ hãy save lại. Giả sử tôi lưu với tên là welcome.php trong thư mục www. Mở trình duyệt lên, gõ vào ô Address dòng chữ sau: http://localhost/welcome.php?user=sinh Hãy xem kết quả hiển thị trên màn hình, sau đó thay chữ sinh bằng một cái tên gì đó xem kết quả ra sao. II. Phương thức POST Post là phần dữ liệu được gửi qua các form HTML có method ="POST" (xin xem lại bài về HTML). 19
  20. Để lấy các biến theo kiểu POST, PHP sẽ tự động sinh ra mảng có tên là $_POST[]. Mảng này có chỉ số chính là tên của các phần tử trong form (các thẻ input, select... có thuộc tính name) và giá trị là nội dung giá trị do người sử dụng nhập vào các phần tử có tên tương ứng. Chẳng hạn với mẫu biểu HTML sau: Code: User Name: Password: Sex: Male Female Khi người dùng nhập user name (giả sử là Sinh), password (giả sử là 123456) và chọn sex là Male, khi đó, mảng $_POST sẽ có các phần tử sau: $_POST["T1"] = Sinh $_POST["T2"] = 123456 $_POST["sex"] = 1 Sau khi lấy được các giá trị này rồi, các bạn có thể thoải mái sử dụng. Đây là ví dụ một chương trình giải phương trình bậc nhất (cho nó đơn giản Grin) Code: Nhập a: Nhập b:
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2