Bài 3: Hướng dẫn chi tiết về Chuỗi, Form, Hàm và Lập trình Hướng đối tượng PHP

Tài liệu nghiên cứu Se401 bai 3 v1 0012105208, tổng hợp lý thuyết và thực hành, cung cấp kiến thức chuyên sâu về ., phục vụ nghiên cứu và ứng dụng thực tiễn

Người đăng

Ẩn danh
53
1
0

Phí lưu trữ

30 Point

Tóm tắt

I. Tổng quan kiến thức cốt lõi trong SE401 bài 3 FPT

Bài 3 trong mã môn học SE401 FPT tập trung vào các khái niệm nền tảng nhưng vô cùng quan trọng của ngôn ngữ lập trình PHP, bao gồm xử lý chuỗi, biểu mẫu form, xây dựng hàm và các nguyên tắc cơ bản của lập trình hướng đối tượng (OOP). Việc nắm vững các nội dung này là điều kiện tiên quyết để xây dựng các ứng dụng web động và hiệu quả. Môn học kiến trúc và thiết kế phần mềm đòi hỏi sinh viên không chỉ biết cách viết mã, mà còn phải hiểu cách cấu trúc mã một cách logic và có thể tái sử dụng. Bài học này cung cấp bộ công cụ cần thiết để thực hiện điều đó, từ việc thao tác với dữ liệu văn bản, thu thập thông tin người dùng qua form, đến việc module hóa mã nguồn bằng hàm và tổ chức cấu trúc dự án theo mô hình đối tượng. Mục tiêu chính của bài học là trang bị cho sinh viên khả năng trình bày và áp dụng các hàm xử lý chuỗi, hiểu rõ công dụng và cách tạo thư viện hàm, đồng thời nắm bắt các khái niệm OOP trong PHP. Một ứng dụng thực tế sử dụng các công cụ này sẽ được xây dựng để củng cố kiến thức. Đây là những kỹ năng nền tảng giúp sinh viên tự tin hơn khi giải bài tập SE401 và chuẩn bị cho các bài tập lớn SE401 phức tạp hơn trong tương lai. Việc hiểu sâu các khái niệm này không chỉ giúp vượt qua môn học mà còn tạo ra một nền tảng vững chắc cho sự nghiệp phát triển phần mềm chuyên nghiệp.

1.1. Giới thiệu môn học kiến trúc và thiết kế phần mềm SE401

Môn học SE401 - Kiến trúc và thiết kế phần mềm (Software Architecture and Design) là một học phần cốt lõi trong chương trình đào tạo kỹ sư phần mềm tại Đại học FPT. Môn học này không chỉ dạy về một ngôn ngữ lập trình cụ thể mà tập trung vào các nguyên tắc, mẫu thiết kế (design patterns), và các phương pháp luận để xây dựng nên những hệ thống phần mềm có cấu trúc tốt, dễ bảo trì và mở rộng. Nội dung của mã môn học SE401 bao gồm việc phân tích yêu cầu, thiết kế kiến trúc hệ thống, lựa chọn công nghệ phù hợp và áp dụng các mẫu thiết kế phổ biến. Sinh viên sẽ được học cách sử dụng các công cụ mô hình hóa như sơ đồ UML (UML diagram) để trực quan hóa thiết kế trước khi bắt tay vào lập trình. Việc nắm vững kiến thức từ tài liệu môn SE401 giúp sinh viên có cái nhìn tổng thể về một dự án phần mềm, thay vì chỉ tập trung vào từng dòng mã riêng lẻ.

1.2. Mục tiêu chính của bài 3 Chuỗi Form Hàm và OOP

Bài 3 đặt ra các mục tiêu học tập rõ ràng, đóng vai trò là nền móng cho các kiến thức chuyên sâu hơn. Thứ nhất, sinh viên cần trình bày được khái niệm về chuỗi, các cách định dạng và sử dụng thành thạo các hàm xử lý chuỗi trong PHP. Thứ hai, bài học yêu cầu sinh viên phải hiểu rõ công dụng, cách tạo và sử dụng các hàm cũng như thư viện hàm, nhấn mạnh tầm quan trọng của việc tái sử dụng mã nguồn. Thứ ba, và cũng là quan trọng nhất, sinh viên phải nắm được các khái niệm cơ bản của lập trình hướng đối tượng (OOP) và cách áp dụng chúng trong PHP, bao gồm lớp, đối tượng, kế thừa. Cuối cùng, một mục tiêu thực hành là xây dựng được ít nhất một ứng dụng nhỏ để minh họa việc vận dụng tổng hợp các kiến thức đã học. Đây là bước đệm quan trọng cho việc ôn tập SE401 và giải quyết các bài toán thực tế.

II. Thách thức thường gặp khi giải bài tập SE401 bài 3 PHP

Khi tiếp cận với nội dung của SE401 bài 3, sinh viên thường đối mặt với một số thách thức đặc thù. Khó khăn đầu tiên nằm ở việc định dạng và xử lý chuỗi trong PHP. Sự khác biệt giữa dấu nháy đơn và nháy kép, cùng với cú pháp của kiểu tài liệu (heredoc), có thể gây nhầm lẫn. Việc ghi nhớ và áp dụng đúng hàng loạt hàm xử lý chuỗi như explode, implode, str_replace cũng đòi hỏi sự luyện tập thường xuyên. Một vấn đề phổ biến khác là sự nhầm lẫn giữa hai phương thức POST và GET khi làm việc với biểu mẫu form. Sinh viên cần hiểu rõ khi nào nên sử dụng phương thức nào để đảm bảo tính bảo mật và hiệu quả của ứng dụng. Việc không phân biệt được đặc điểm của $_POST, $_GET, và $_REQUEST có thể dẫn đến các lỗi logic khó phát hiện. Thách thức lớn nhất có lẽ là rào cản tư duy khi chuyển từ lập trình thủ tục sang lập trình hướng đối tượng. Các khái niệm như lớp, đối tượng, kế thừa, và các bổ từ truy cập (public, protected, private) là hoàn toàn mới lạ. Việc hiểu và vận dụng đúng con trỏ $this và toán tử :: cho thành viên static thường gây khó khăn cho người mới bắt đầu. Những thách thức này đòi hỏi một hướng dẫn SE401 bài 3 chi tiết và nhiều ví dụ thực hành.

2.1. Khó khăn trong việc định dạng và xử lý chuỗi PHP

Việc xử lý chuỗi là một trong những tác vụ cơ bản nhất nhưng cũng tiềm ẩn nhiều lỗi. Một trong những khó khăn đầu tiên là hiểu rõ sự khác biệt giữa chuỗi được định nghĩa bằng dấu nháy đơn ('...') và dấu nháy kép ("..."). Theo tài liệu, "Chuỗi đặt trong nháy kép bị thay thế và xử lý ký tự thoát. Chuỗi đặt trong nháy đơn thì không". Điều này có nghĩa là các biến và ký tự đặc biệt như sẽ không được nội suy trong chuỗi nháy đơn, một lỗi phổ biến gây ra kết quả không mong muốn. Thêm vào đó, cú pháp heredoc (<<<IDENTIFIER) tuy mạnh mẽ để xử lý chuỗi nhiều dòng nhưng lại yêu cầu định danh kết thúc phải nằm ở đầu dòng và không có bất kỳ ký tự nào đứng trước, một quy tắc dễ bị bỏ qua. Việc lựa chọn hàm xử lý chuỗi phù hợp trong số hàng chục hàm có sẵn cũng là một thử thách.

2.2. Nhầm lẫn giữa phương thức POST và GET trong biểu mẫu

Phương thức GET và POST là hai cách chính để gửi dữ liệu từ form lên máy chủ, nhưng chúng có những đặc điểm và mục đích sử dụng khác nhau. Phương thức GET gửi dữ liệu thông qua URL, làm cho nó hiển thị trên thanh địa chỉ và có giới hạn về độ dài (khoảng 2000 ký tự). Điều này phù hợp cho các tác vụ như tìm kiếm nhưng không an toàn cho việc gửi thông tin nhạy cảm. Ngược lại, phương thức POST gửi dữ liệu trong phần thân của yêu cầu HTTP, không hiển thị trên URL và có giới hạn kích thước lớn hơn nhiều (mặc định 8MB). Sinh viên thường nhầm lẫn khi lựa chọn, ví dụ như dùng GET cho form đăng nhập, làm lộ mật khẩu trên URL. Việc hiểu rõ khi nào nên sử dụng $_GET, $_POST hay $_REQUEST là chìa khóa để xây dựng ứng dụng web an toàn và đúng chức năng.

2.3. Rào cản khi chuyển từ lập trình thủ tục sang hướng đối tượng

Lập trình hướng đối tượng (OOP) yêu cầu một sự thay đổi trong tư duy thiết kế. Thay vì suy nghĩ theo chuỗi các hàm và thủ tục, sinh viên phải học cách mô hình hóa các thực thể trong thế giới thực thành các đối tượng có thuộc tính (biến) và hành vi (phương thức). Khái niệm về class như một bản thiết kế và object như một thể hiện cụ thể có thể khó hình dung ban đầu. Hơn nữa, các nguyên tắc như kế thừa (extends), cho phép một lớp con thừa hưởng đặc tính của lớp cha, hay việc sử dụng các bổ từ truy cập (public, protected, private) để kiểm soát tính đóng gói dữ liệu là những khái niệm trừu tượng. Việc sử dụng sai con trỏ $this để tham chiếu đến đối tượng hiện tại hoặc nhầm lẫn với từ khóa self cho các thành viên static là những lỗi thường gặp trong quá trình học tập.

III. Phương pháp xử lý chuỗi và biểu mẫu form trong PHP SE401

Để vượt qua các thách thức trong SE401 bài 3, cần có một phương pháp tiếp cận hệ thống đối với việc xử lý chuỗi và biểu mẫu form. Về xử lý chuỗi, PHP cung cấp một thư viện hàm vô cùng phong phú. Các hàm như trim(), ltrim(), rtrim() rất hữu ích để làm sạch dữ liệu đầu vào bằng cách loại bỏ các khoảng trắng không mong muốn. Để phân tích và trích xuất thông tin, các hàm explode() (tách chuỗi thành mảng) và implode() (nối các phần tử mảng thành chuỗi) là không thể thiếu. Hàm str_replace() cho phép tìm kiếm và thay thế, trong khi strlen() trả về độ dài chuỗi. Việc thực hành thường xuyên với các hàm này qua các bài tập nhỏ sẽ giúp ghi nhớ và sử dụng thành thạo. Đối với biểu mẫu form, nguyên tắc cơ bản là hiểu rõ luồng hoạt động: người dùng nhập dữ liệu, nhấn nút submit, dữ liệu được gửi đến trang được chỉ định trong thuộc tính action bằng phương thức method (POST hoặc GET). Tại trang xử lý, PHP sử dụng các biến siêu toàn cục như $_POST hoặc $_GET để truy cập dữ liệu. Luôn kiểm tra và xác thực dữ liệu nhận được từ form là một bước quan trọng để đảm bảo an ninh. Việc tìm kiếm đáp án bài 3 SE401 sẽ hiệu quả hơn khi đã nắm vững các phương pháp này.

3.1. Các hàm xử lý chuỗi PHP thông dụng và ví dụ minh họa

Tài liệu slide môn kiến trúc phần mềm cung cấp danh sách chi tiết các hàm xử lý chuỗi quan trọng. Ví dụ, hàm ucwords($st) được dùng để viết hoa ký tự đầu của mỗi từ, rất hữu ích khi chuẩn hóa tên người dùng. Hàm addslashes($st) thêm các dấu gạch chéo ngược trước các ký tự đặc biệt (như dấu nháy đơn, nháy kép) để chuẩn bị dữ liệu lưu vào cơ sở dữ liệu một cách an toàn, tránh lỗi SQL Injection. Ngược lại, stripslashes($st) loại bỏ các dấu gạch chéo này khi hiển thị dữ liệu. Hàm strstr($st1, $st2) tìm kiếm sự xuất hiện của chuỗi $st2 trong $st1 và trả về phần còn lại của $st1 từ vị trí đó, hữu ích cho việc phân tích email hoặc URL. Ví dụ: strstr('name@example.com', '@') sẽ trả về '@example.com'. Thực hành với các ví dụ này là cách tốt nhất để hiểu rõ công dụng của từng hàm.

3.2. Cách thức hoạt động và thu thập dữ liệu từ Form

Một biểu mẫu HTML được định nghĩa bởi thẻ <form>. Hai thuộc tính quan trọng nhất là actionmethod. action chỉ định URL của kịch bản PHP sẽ xử lý dữ liệu, trong khi method xác định cách dữ liệu được gửi đi (thường là GET hoặc POST). Bên trong form, các phần tử như <input>, <textarea>, <select> được sử dụng để thu thập dữ liệu. Mỗi phần tử phải có thuộc tính name để định danh dữ liệu khi gửi lên máy chủ. Ví dụ, một ô nhập liệu <input type="text" name="username"> sẽ gửi giá trị người dùng nhập vào dưới tên là username. Phía máy chủ, kịch bản PHP có thể truy cập giá trị này bằng cách sử dụng $_POST['username'] nếu phương thức là POST. Nắm vững cấu trúc này là nền tảng để xây dựng bất kỳ tính năng tương tác nào trên web.

IV. Bí quyết xây dựng hàm và lập trình hướng đối tượng PHP

Việc làm chủ kỹ thuật xây dựng hàm và lập trình hướng đối tượng (OOP) là bước nhảy vọt trong tư duy lập trình, chuyển từ viết mã đơn thuần sang thiết kế phần mềm. Trong PHP, việc sử dụng require()include() cho phép tái sử dụng các đoạn mã đã viết, giảm chi phí phát triển và tăng độ tin cậy. Khi xây dựng hàm do người dùng định nghĩa, việc đặt tên hàm rõ ràng, mô tả đúng chức năng của nó là rất quan trọng. PHP cho phép truyền tham số theo giá trị (ByVal) và tham chiếu (ByRef, sử dụng ký tự &), một khái niệm cần nắm vững để kiểm soát việc thay đổi giá trị của biến. Đối với OOP, bí quyết nằm ở việc mô hình hóa vấn đề một cách chính xác. Bắt đầu bằng việc xác định các đối tượng, thuộc tính và phương thức của chúng. Sử dụng class để định nghĩa bản thiết kế, sau đó tạo các đối tượng cụ thể bằng từ khóa new. Việc áp dụng các bổ từ truy cập (public, protected, private) giúp thực thi tính đóng gói, một trong bốn trụ cột của OOP, bảo vệ dữ liệu khỏi các truy cập trái phép. Kế thừa (extends) là công cụ mạnh mẽ để xây dựng các lớp chuyên biệt hơn từ các lớp cơ sở, thúc đẩy việc tái sử dụng mã nguồn. Nắm vững những bí quyết này là con đường để tạo ra source code SE401 chất lượng cao.

4.1. Kỹ thuật xây dựng hàm người dùng định nghĩa trong PHP

Việc định nghĩa hàm trong PHP được thực hiện bằng từ khóa function, theo sau là tên hàm và danh sách tham số trong dấu ngoặc đơn. Một điểm đặc biệt của PHP là tên hàm không phân biệt chữ hoa, chữ thường khi gọi. Hàm có thể trả về một giá trị bằng cách sử dụng câu lệnh return. Ví dụ, một hàm tính tổng hai số có thể được định nghĩa như sau: function tinh_tong($a, $b) { return $a + $b; }. PHP cũng hỗ trợ giá trị mặc định cho tham số, ví dụ function sayHello($name = 'Guest'), cho phép gọi hàm mà không cần truyền tham số đó. Để cho phép một hàm sửa đổi trực tiếp biến được truyền vào, ta sử dụng tham chiếu: function increment(&$value) { $value++; }. Kỹ thuật này rất hữu ích nhưng cần sử dụng cẩn thận để tránh các tác dụng phụ không mong muốn.

4.2. Các khái niệm cốt lõi của Lập trình Hướng đối tượng

Lập trình Hướng đối tượng (OOP) trong PHP xoay quanh bốn khái niệm chính: lớp (Class), đối tượng (Object), thuộc tính (Property) và phương thức (Method). Một Class là một khuôn mẫu hoặc bản thiết kế để tạo ra các đối tượng. Ví dụ, class Car. Thuộc tính là các biến được khai báo bên trong một lớp, đại diện cho trạng thái của đối tượng, ví dụ, $color, $brand. Phương thức là các hàm được định nghĩa bên trong lớp, đại diện cho hành vi của đối tượng, ví dụ startEngine(). Một Object là một thể hiện cụ thể của một lớp, được tạo ra bằng từ khóa new, ví dụ $vinfastCar = new Car();. Bên trong một phương thức của lớp, con trỏ đặc biệt $this được sử dụng để truy cập các thuộc tính và phương thức của chính đối tượng đó, ví dụ $this->color.

4.3. Tìm hiểu về Kế thừa Bổ từ truy cập và thành viên static

Kế thừa là một cơ chế cho phép một lớp (lớp con) thừa hưởng các thuộc tính và phương thức từ một lớp khác (lớp cha) bằng từ khóa extends. Điều này thúc đẩy tái sử dụng mã và tạo ra một hệ thống phân cấp logic. Bổ từ truy cập (public, protected, private) kiểm soát khả năng truy cập vào các thuộc tính và phương thức. public cho phép truy cập từ bất cứ đâu. protected chỉ cho phép truy cập từ bên trong lớp đó và các lớp con kế thừa nó. private giới hạn truy cập chỉ trong phạm vi lớp đã định nghĩa nó. Các thành viên static thuộc về chính lớp đó chứ không phải một đối tượng cụ thể. Chúng có thể được truy cập mà không cần tạo một thể hiện của lớp, bằng cách sử dụng toán tử :: (ví dụ, MyClass::$myStaticVar).

V. Ứng dụng thực tiễn SE401 Source code và sơ đồ UML

Lý thuyết của môn kiến trúc và thiết kế phần mềm chỉ thực sự có giá trị khi được áp dụng vào thực tiễn. Trong khuôn khổ SE401 bài 3, việc xây dựng một ứng dụng nhỏ là cách tốt nhất để củng cố kiến thức. Một ví dụ điển hình là xây dựng một form đăng ký người dùng đơn giản. Ứng dụng này sẽ bao gồm một file HTML chứa form với các trường nhập liệu (tên, email, mật khẩu) sử dụng phương thức POST. Một file PHP sẽ nhận và xử lý dữ liệu này. Trong file PHP, các hàm xử lý chuỗi sẽ được dùng để làm sạch và xác thực dữ liệu (ví dụ: trim() để xóa khoảng trắng, kiểm tra định dạng email). Sau đó, dữ liệu có thể được tổ chức bằng cách sử dụng một lớp User trong OOP. Lớp này sẽ có các thuộc tính như username, email và các phương thức như save() hoặc validate(). Trước khi viết mã, việc vẽ một sơ đồ UML đơn giản, chẳng hạn như sơ đồ lớp (Class Diagram), sẽ giúp trực quan hóa cấu trúc của lớp User và mối quan hệ của nó với các thành phần khác. Việc phân tích các source code SE401 mẫu từ giảng viên hoặc các khóa trước cũng là một cách học hiệu quả để xem các khái niệm này được áp dụng trong một dự án thực tế như thế nào. Qua đó, sinh viên có thể chuẩn bị tốt hơn cho bài tập lớn SE401.

5.1. Phân tích source code ví dụ cho bài tập lớn SE401

Việc phân tích một source code SE401 mẫu là một hoạt động học tập vô giá. Khi xem xét mã nguồn, hãy chú ý đến cách các tệp được cấu trúc. Các lớp OOP thường được đặt trong các tệp riêng biệt và được nạp vào bằng require_once(). Hãy quan sát cách dữ liệu từ form được xử lý: có bước kiểm tra isset($_POST['submit']) không, dữ liệu có được làm sạch bằng các hàm như htmlspecialchars() để chống lại tấn công XSS không? Xem xét cách các lớp được thiết kế: các thuộc tính có được khai báo là private để đảm bảo tính đóng gói không, và các phương thức public (getters/setters) có được cung cấp để truy cập chúng một cách có kiểm soát không? Việc phân tích này không chỉ cung cấp đáp án bài 3 SE401 mà còn dạy cách viết mã sạch, an toàn và dễ bảo trì.

5.2. Vai trò của sơ đồ UML trong thiết kế kiến trúc phần mềm

UML (Unified Modeling Language) là ngôn ngữ mô hình hóa tiêu chuẩn được sử dụng để trực quan hóa, đặc tả, xây dựng và tài liệu hóa các cấu phần của một hệ thống phần mềm. Trong môn software architecture and design, sơ đồ UML đóng vai trò như bản thiết kế của một tòa nhà. Sơ đồ lớp (Class Diagram) là một trong những sơ đồ quan trọng nhất, cho thấy các lớp trong hệ thống, các thuộc tính và phương thức của chúng, cùng với các mối quan hệ giữa các lớp (như kế thừa, liên kết). Việc vẽ sơ đồ UML trước khi lập trình giúp đội ngũ phát triển có một cái nhìn chung, thống nhất về thiết kế hệ thống, phát hiện các vấn đề tiềm ẩn sớm và tạo ra một cấu trúc mã nguồn có tổ chức, logic và dễ dàng mở rộng sau này.

VI. Kết luận và định hướng ôn tập hiệu quả môn SE401 FPT

Bài 3 của môn SE401 FPT là một bài học nền tảng, trang bị những công cụ thiết yếu cho bất kỳ lập trình viên web nào. Từ việc thao tác linh hoạt với chuỗi, xử lý an toàn dữ liệu từ form, cho đến việc cấu trúc hóa mã nguồn bằng hàm và áp dụng tư duy lập trình hướng đối tượng, tất cả đều là những kỹ năng cốt lõi. Để ôn tập SE401 hiệu quả, sinh viên cần hệ thống hóa lại kiến thức đã học. Hãy tóm tắt lại các hàm xử lý chuỗi và số quan trọng, vẽ lại luồng hoạt động của một biểu mẫu form, và quan trọng nhất là thực hành định nghĩa các lớp, tạo đối tượng và sử dụng kế thừa. Việc tìm kiếm và tham khảo các tài liệu môn SE401 bổ sung, đặc biệt là các ví dụ về design patterns, sẽ giúp mở rộng kiến thức. Lộ trình ôn tập nên bắt đầu từ việc làm lại các ví dụ trên lớp, sau đó tự mình xây dựng các ứng dụng nhỏ để áp dụng kiến thức. Đừng chỉ tìm kiếm đáp án bài 3 SE401, mà hãy cố gắng tự giải quyết vấn đề. Sự hiểu biết sâu sắc về các khái niệm này không chỉ đảm bảo thành công trong môn học mà còn là nền tảng vững chắc cho các dự án phần mềm phức tạp trong tương lai.

6.1. Tóm tắt các kiến thức trọng tâm từ slide môn học

Để ôn tập hiệu quả, cần tóm tắt các điểm chính từ slide môn kiến trúc phần mềm. Thứ nhất, về chuỗi, ghi nhớ sự khác biệt giữa nháy đơn và nháy kép, và chức năng của 10-15 hàm xử lý chuỗi phổ biến nhất. Thứ hai, về form, nắm vững luồng hoạt động HTML Form -> Submit -> PHP Script và sự khác nhau cơ bản giữa GET (hiển thị trên URL, giới hạn kích thước, dùng cho truy vấn) và POST (ẩn, kích thước lớn, dùng cho việc thay đổi dữ liệu). Thứ ba, về hàm, hiểu cách định nghĩa hàm, truyền tham số theo giá trị và tham chiếu. Cuối cùng, đối với OOP, tập trung vào việc định nghĩa class với các propertymethod, cách khởi tạo object, và cách sử dụng kế thừa (extends) cùng các bổ từ truy cập public, protected, private.

6.2. Lộ trình giải bài tập SE401 và tài liệu tham khảo

Một lộ trình ôn tập và giải bài tập SE401 hiệu quả nên theo các bước sau. Đầu tiên, đọc kỹ lại lý thuyết và các ví dụ trong tài liệu giảng dạy. Tiếp theo, tự tay gõ lại các đoạn mã ví dụ để hiểu cách chúng hoạt động, không chỉ sao chép. Sau đó, bắt đầu với các bài tập nhỏ, chẳng hạn như viết một chương trình xử lý một chuỗi đầu vào hoặc một form đơn giản. Dần dần, tăng độ khó bằng cách kết hợp các khái niệm lại với nhau, ví dụ xây dựng một lớp OOP để quản lý dữ liệu nhận được từ form. Ngoài tài liệu chính thức, các nguồn tham khảo uy tín như PHP.net (tài liệu chính thức của PHP), W3Schools, hoặc các cuốn sách về design patterns như "Head First Design Patterns" là những tài liệu vô cùng hữu ích để đào sâu kiến thức và chuẩn bị cho các thử thách lớn hơn trong môn kiến trúc và thiết kế phần mềm.

15/07/2025

Trích đoạn nội dung tài liệu

mở đầu và kết thúc đoạn tài liệu. • Cách viết: $biến = <<<Ký_hiệu nội dung trên nhiều dòng Ký_hiệu; Chú ý: Ký hiệu phải được viết ở ký tự đầu tiên của dòng. Vi du chuoi <br> 4. Bieu dien tren nhieu dong<br> 5.

Cu phap chuoi kieu tai lieu <br> Đoạn tài liệu 6. echo($str); Kết thúc đoạn tài liệu 8. Day la bai giang cua $name. VIDU2; Trong đoạn tài liệu 14.

echo($str); có thể có cả các biến 15.0013104204 TRUYỀN BIẾN TRONG CHUỖI • Kiểu đơn giản: Biến trong chuỗi. Để làm rõ các biến trong chuỗi, cần bao biến vào giữa cặp ngoặc nhọn { }. $a = “He”; $b = “$allo”; //lỗi vì PHP hiểu là $allo $c = “{$a}llo”; //đúng ($c = “Hello”) • Kiểu phức tạp: Biến mảng, biến biến, biến trong tên có dấu gạch nối hoặc dấu chấm khi viết trong chuỗi bắt buộc phải bao lại. Biến mảng sẽ được trình bày trong phần mảng.

CÁC HÀM XỬ LÝ CHUỖI • Hàm ltrim • Hàm strlen • Hàm rtrim • Hàm strcmp • Hàm trim • Hàm strstr và strchr • Hàm addslashes • Hàm strpos • Hàm stripslashes • Hàm str_replace • Hàm ucfirst • Hàm strrev • Hàm ucwords • Hàm explode • Hàm strtolower • Hàm implode • Hàm strtoupper • Hàm chr 11 v1.0013104204 HÀM LTRIM VÀ HÀM RTRIM • Hàm ltrim(str [,char]); Ví dụ: 1. $st="aaaa Hoàng Nam"; 3. echo $st; //"Hoàng Nam" 5. ?> • Hàm rtrim(str [,char]); Xóa bỏ các ký tự trắng bên phải hoặc xóa bỏ các ký tự char bên phải.

$st="Hoàng Nam aaaa"; 3. echo $st; //"Hoàng Nam" 5.0013104204 HÀM TRIM VÀ HÀM ADDSLASHES • Hàm trim(str [,char]); Ví dụ: 1. $st="aaaa Hoàng Nam aaaa"; 3. echo $st; //"Hoàng Nam" 5.

?> • Hàm addslashes($st): Định dạng dữ liệu trong chuổi để lưu vào CSDL.  Để lưu chuỗi có các dấu nháy ' hay cặp ", dấu \, dấu \\ thì chúng ta dùng thêm dấu \ vào phía trước chúng như sau: \', \", \\, \\\. echo addslashes($st); //Who\'re you? 2. $st ="Who're you?"; 13 v1.0013104204 HÀM STRIPSLASHES VÀ HÀM UCFIRST • Hàm stripslashes($st): Loại bỏ các dấu ', ", /… trong cơ sở dữ liệu.

$st ="Who\'re you?"; 3. echo stripslashes($st); //Who're you? 4. ?> • Hàm ucfirst($st): Hàm chuyển ký tự đầu tiên của chuỗi thành hoa. $st = "nguyễn Hoàng Nam"; 3.

echo ucfirst($st); // Nguyễn Hoàng Nam 4.0013104204 HÀM UCWORDS VÀ HÀM STRTOLOWER • Hàm ucwords($st): Viết hoa kí tự đầu tiên của mỗi từ. $st = "nguyễn hoàng nam"; 3. echo ucwords($st); // Nguyễn Hoàng Nam 4. ?> • Hàm strtolower($st): Chuyển kí tự bất kỳ thành chữ thường.

$st = "NGUYỄN HOÀNG NAM"; 3. echo strtolower($st); // nguyễn hoàng nam 4.0013104204 HÀM STRTOUPPER VÀ HÀM STRLEN • Hàm strtoupper($st): Biến kí tự bất kỳ thành chữ hoa. $st = "nguyễn hoàng nam"; 3. echo strtoupper($st); // NGUYỄN HOÀNG NAM 4.

?> • Hàm strlen($st): Kết quả trả về độ dài của chuỗi. $st = "Nguyễn Hoàng Bảo Nam"; 3.0013104204 HÀM STRCMP, HÀM STRSTR VÀ STRCHR • Hàm strcmp($str1,$str2): Hàm so sánh chuỗi không phân biệt chữ hoa và chữ thường, hàm này trả về kết quả là: Ví dụ: 1. echo strcmp('Hải','Nam'); // kết quả -1 2. echo strcmp('Nam','Nam') "; // kết quả 0 3.

echo strcmp('Nam','Hải'); // Kết quả 1 • Hàm strstr($st1, $st2) và strchr($s1, $st2): Tìm chuỗi st2 trong st1, nếu tồn tại hàm sẽ trả về chuỗi con trong $st1 bắt đầu $st2. $email = "hodienloi@hitc. echo strstr($email,'@'); //@hitc.0013104204 HÀM STRPOS, HÀM STR_REPLACE VÀ HÀM STRREV • Hàm strpos($st1,$st2): Tìm vị trí chuỗi con $st2 trong chuỗi $st1. $email = "hodienloi@hitc.

echo strpos($email,'@hitc'); // 9 • Hàm str_replace($seach, $rep, $st): Tìm kiếm và thay thế. $email = "hodienloi@hitc. echo str_replace('hitc.com',$email); • Hàm strrev($st): Đảo ngược 1 xâu. $st = "ssalc ym olleH"; 3.

echo strrev($st); //Hello my class 4.0013104204 HÀM EXPLODE • Hàm explode($ch, $st): Tách chuỗi $st thành nhiều phần tử và gán cho phần tử mảng, tách theo ký tự $ch.0013104204 HÀM IMPLODE VÀ HÀM CHR • Hàm implode($ch, $mang): Kết hợp các phần tử mảng thành chuỗi, các phần tử mảng cách nhau bởi $ch. ?> • Hàm chr(number): Đổi số thành ký tự trong bảng mã ASCII. echo chr(97); // kết quả a 3. echo chr(65); //kết quả A 4.

BIỂU MẪU FORM • Đặc điểm; • Các đối tượng thể hiện của Form; • Hoạt động; • Phương thức; • Phương thức Post; • Phương thức Get. ĐẶC ĐIỂM • Form là một thành phần của trang web. • Các đối tượng thể hiện của form: TextField, Textarea, Button, RadioButton, CheckBox, List/Menu. • Các thuộc tính cơ bản của form:  name: Tên form;  action: Hành động;  method: Phương thức;  _top, _parent, _self, _black: Vị trí.

• Loại nội dung trong form: enctype = content-type với content-type:  application/x-www-form-urlenconded;  multipart/fom-data. CÁC ĐỐI TƯỢNG THỂ HIỆN CỦA FORM • TextField: Dùng để nhập và hiển thị dữ liệu, có 3 loại sau:  Singleline: Nhập và hiển trên 1 dòng văn bản;  Multiline: Nhập và hiển trên nhiều dòng văn bản;  Password: Hiển thi dấu * thay cho ký tự. • Textarea: Dùng để nhập và hiển thị dữ liệu dạng multiline:  Numline: Số dòng văn bản hiển thị;  Wrap: Tăng số dòng bản nếu văn bản vượt quá numline; • FileField: Đối tượng này cho phép người dùng chọn một file để xem xét các thuộc tính hoặc upload,… • Button: Dùng để tạo ra các nút như submit, reset:  Button submit: Khi ta nhấn vào nút này dữ liệu trên form sẽ gửi về server;  Button reset: Khi nhấn vào nút này các đối tượng trên form sẽ reset. CÁC ĐỐI TƯỢNG THỂ HIỆN CỦA FORM (tiếp theo) • RadioButton/Radiogroup:  Radio là một đối tượng có hai trạng thái on/off;  Trên form có nhiều radio, các radio cùng nhóm có cùng name;  Chỉ có thể chọn một radio trên nhóm.

• CheckBox:  Là một đối tượng có hai trạng thái on/off;  Trên form có nhiều checkbox, đồng thời ta có thể chọn nhiều checkbox; • List/Menu:  Là danh sách nhiều mục chọn;  Có thể chọn một hoặc nhiều mục chọn;  Muốn chọn nhiều mục chọn thì thuộc tính "Selectons Allow Multiple“. HOẠT ĐỘNG CỦA FORM • action: Hành động. • Khi muốn lấy giá trị từ form đưa về trang nào thì trong action ta nhập vào trang đó. • Ví dụ: <form action = "xu_ly.php" method ="POST" name="form1"> …………… </form> 25 v1.

CÁC PHƯƠNG THỨC CỦA FORM • method: Phương thức. • Phương thức của Form là hình thức chuyển giá trị trên form đến trang action. • Ý nghĩa của hai phương thức của Form:  POST: Chuyển giá trị đến trang action và nhận giá trị ta dùng biến $_POST hoặc $_REQUEST.  GET: Chuyển giá trị đến trang action và nhận giá trị ta dùng biến $_GET hoặc $_REQUEST.

PHƯƠNG THỨC POST • Đặc điểm Form sử dụng phương thức POST:  $_POST là một mảng kết hợp của các biến thông qua các giá trị được nhận được mà phương thức HTTP POST gọi tắt là POST gửi đi;  Biến $_POST được dùng để lấy các thông tin (giá trị và các biến) được gửi từ một form thông qua phương thức POST;  Giới hạn kích thước mặc định của các biến trong phương thức POST là 8MB. Tuy nhiên, kích thước này có thể thay đổi được bằng cách thiết lập lại giá trị cho post_max_size trong php.ini => Có thể coi là không giới hạn kích thước;  Thông tin được gửi bằng phương thức POST sẽ không hiển thị lên địa chỉ URL nên người dùng không thể thấy được;  $_POST là một trong số các biến thuộc nhóm Superglobals (*).  Từ phiên bản PHP 4.0 thì $_POST được giới thiệu để thay thế cho $HTTP_POST_VARS. • Cách sử dụng: Cú pháp lấy giá trị của một đối tượng trên form sau khi form submit.

PHƯƠNG THỨC GET • Đặc điểm của Form sử dụng phương thức Get:  $_GET là một mảng kết hợp của các biến nhận được từ script hiện tại thông qua các tham số trong đường dẫn URL;  Biến $_GET được dùng để lấy dữ liệu trên form bằng phương thức GET. Thông tin gửi qua không vượt quá 2000 ký tự;  Người dùng có thể nhìn thấy được thông tin được gửi từ form sử dụng phương thức GET trên thanh địa chỉ của trình duyệt và số lượng thông tin được gửi là có giới hạn;  Từ PHP 4.0 $_GET được giới thiệu để thay thế cho $HTTP_GET_VARS. • Cách sử dụng: Cú pháp lấy giá trị trên form bằng phương thức GET.0013104204 CÂU HỎI TƯƠNG TÁC 1. Sự khác nhau giữa textarea và textfield 2.

Sự khác nhau của 2 hàm checkdate và getdate 29 v1.0013104204 BIẾN $_REQUEST • Đặc điểm:  Biến $_REQUET chọn nội dung cả các biến $_POST, $GET, $_COOKIE;  Có thể lấy thông tin không cần xác định phương thức form;  Độ bảo mật thông tin thấp. • Cách sử dụng: Cú pháp lấy giá trị bằng biến $_REQUEST. XÂY DỰNG HÀM TRONG PHP • Sử dụng lại mã chương trình; • Các loại hàm trong PHP; • Thư viện hàm của PHP; • Hàm do người dùng định nghĩa. SỬ DỤNG LẠI MÃ CHƯƠNG TRÌNH • Một trong những mục tiêu của những nhà làm công nghệ phần mềm là sử dụng lại những đoạn mã đã được viết trước đó khi viết đoạn chương trình mới.

Mục đích của việc sử dụng lại này là:  Giảm chi phí khi phát triển ứng dụng;  Tăng độ tin cậy do những đoạn mã ấy đã được sử dụng trước đó;  Tăng tính nhất quán do mỗi chương trình có một kiểu mẫu khác nhau. • Trong PHP cung cấp hai cách để khai báo và sử dụng bất cứ đoạn mã chương trình nào đã có bằng cách sử dụng hai khai báo require() và include(). CÁC LOẠI HÀM TRONG PHP Trong bất cứ một ngôn ngữ lập tình nào cũng có hàm. Tùy theo cách phân loại mà có các loại hàm khác nhau: • Theo kiểu trả về thì có hai loại:  Hàm có giá trị trả về;  Hàm không có giá trị trả về.

• Theo nguồn gốc hàm:  Thư viện hàm: Là các hàm do ngôn ngữ lập trình hỗ trợ;  Hàm người dùng: Là những hàm do người dùng xây dựng và nó còn được gọi là hàm do người dùng định nghĩa. THƯ VIỆN HÀM CỦA PHP • Hàm xử lý chuỗi (đã trình bày trong phần chuỗi); • Hàm xử lý số; • Hàm xử lý dữ liệu ngày giờ. HÀM XỬ LÝ SỐ • Hàm abs(x): Giá trị tuyệt đố của x; • Hàm round(x[,i]): Hàm làm tròn; • Hàm exp(x): ex; • Hàm lượng giác: sin(x) /cos(x)/tan(x); • Hàm căn bậc hai sqrt(x); • Hàm rand(n1,n2); • Hàm pow(a,x): Lấy bình phương của một số; • Hàm pi(); • Hàm range(gt1,gt2): Hàm lấy giá trị nguyên trong khoảng gt1…gt2 và trả về mảng; • Hàm number_format(): Định dạng số. echo abs($a); // kết quả 2 4.

echo round($a,2); // Kết quả -2,1 5. echo exp(2); //kết quả 7. echo sin(30*PI()/180); // Kết quả 0.sqrt(9); // Kết quả 3 8. echo pow(10,2); // kết quả 100 9.

echo pi(); // kết quả 3. echo number_format($number); // 1,235 14. echo number_format($number, 2, ',', ' ');//1 234,57 16. echo number_format($number, 2, '.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ