Nội dung
- Bài 18: Thuật toán sắp xếp chèn trong PHP
- Bài 19: Phương thức GET & POST trong PHP
- Bài 20: Các hàm xử lý chuỗi trong php
- 1. Quy tắc trong chuỗi
- 2. Các hàm xử lý chuỗi hay sử dụng
- addcslashes ($str, $char_list).
- explode ( $delimiter , $string)
- implode($delimiter, $piecesarray);
- ord ( $string )
- strlen($string)
- str_word_count($str)
- str_repeat( $str, int $n )
- str_replace( $chuoi_tim, $chuoi_thay_the, $chuoi_nguon )
- md5( $str)
- sha1($string)
- htmlentities($str)
- html_entity_decode($string)
- substr( $string, $start, $length )
- strstr( $string, $ky_tu_cho_truoc )
- strpos($str, $chuoi_tim )
Bài 18: Thuật toán sắp xếp chèn trong PHP
Nôi dung bao gồm:
- Ý tưởng thuật toán
- Cài đặt thuật toán
1. Ý tưởng thuật toán sắp xếp chèn
Ý tưởng thuật toán sắp xếp chèn như sau:
Trước hết chúng ta xem phần tử a[0] là một dãy đã có thứ tự.
1: Chèn phần tử a[1] vào dãy a[0] theo đúng vị trí. Sao cho dãy a[0] và a[1] được sắp xếp đúng thứ tự.
2: Chèn phần tử a[2] vào dãy a[0]. a[1] sao cho dãy a[0]. a[1], a[2] được sắp xếp đúng thứ tự.
Bước i: Chèn phần tử a[i] vào dãy a[o], a[1], a[2], …, a[i-1] sao cho dãy a[o], a[1], a[2], …, a[i-1], a[i] được sắp xếp đúng thứ tự.
Sau N-1 bước thì kết thúc (vì mảng có N-1 phần tử).
Lưu đồ thuật toán sắp xếp chèn:
Ví dụ: Sắp xếp tăng dần dãy 5 – 1 – 3 – 4 – 6 – 8. (Phần màu xanh là phần đã sắp xếp).
1: Coi như phần tử thứ nhất là số 5 đã được sắp xếp. dãy lúc này như sau: 5 – 1 – 3 – 4 – 6 – 8.
2: Lấy phần tử thứ hai là số 1 gán vào đúng vị trí trong dãy 5. lúc này dãy như sau: 1 – 5 – 3 – 4 – 6 – 8.
3: Lấy phần tử thứ ba là số 3 gán vào đúng vị trí trong dãy 1 – 5. Lúc này dãy như sau: 1 – 3 – 5 – 4 – 6 – 8.
4: Lấy phần tử thứ tư là số 4 gán vào đúng vị trí trong dãy 1 – 3 – 5. Lúc này dãy như sau: 1 – 3 – 4 – 5 – 6 – 8.
5: Lấy phần tử thứ năm là số 6 gán vào đúng vị trí trong dãy 1 – 3 – 4 – 5. Lúc này dãy như sau: 1 – 3 – 4 – 5 – 6 – 8.
6: Lấy phần tử thứ sáu ( phần tử cuối cùng) gán vào đúng vị trí trong dãy 1 – 3 – 4 – 5 – 6. Lúc này dãy như sau: 1 – 3 – 4 – 5 – 6 – 8.
Kết thúc: kết quả đã được sắp xếp như sau: 1 – 3 – 4 – 5 – 6 – 8.
2. Cài đặt thuật toán sắp xếp chèn
Chúng ta đã được học bài xây dựng hàm trong PHP rồi nên tôi sẽ viết bài giải dưới dạng hàm nhé.
Sắp xếp tăng dần:
Sắp xếp giảm dần:
Sắp xếp giảm dần cũng như tăng dần. Chỉ khác là ta đổi dấu điều kiện lặp trong vòng lặp while.
Bài tiếp theo chúng ta sẽ học phương thức GET và POST trong học lập trình PHP căn bản phần 10.
Bài 19: Phương thức GET & POST trong PHP
Trải qua 18 bài chúng ta học toàn lý thuyết nên có vẻ hơi nhàm chán. Và để giảm căng thẳng thì chúng ta sẽ đi tìm hiểu một vài thứ hấp dẫn hơn.
Chính là phương thức truyền dữ liệu từ Client lên Server.
Như bạn biết bộ mã nguồn web viết bằng PHP được đưa lên host và đó chính là Server. Còn khi các bạn truy cập sử dụng website thì bạn chính là một Client. Khi các bạn đăng nhập hay đăng ký tài khoản. Hoặc các bạn đăng comment thì dữ liệu sẽ được gửi từ client lên Server. Vậy làm sao để Server nhận được những thông tin của bạn? Server sẽ được thông qua hai phương thức POST và GET.
Có 2 cách gửi dữ liệu từ Client lên Server đó là khi ta dùng phương thức GET hoặc phương thức POST. Trừ khi là hacker :D. Để không mất thời gian nữa ta sẽ đi vào tìm hiểu từng cách. so sánh chúng với nhau. và bàn luận xem khi nào ta dùng POST và khi nào ta dùng GET nhé.
Nội dung bài học của chúng ta như sau:
- Phương thức GET trong PHP.
- Phương thức POST trong PHP.
- So sánh giữa POST và GET.
1. Phương thức GET trong PHP
Phương thức GET rất dễ nhận thấy đó là trên URL sẽ kèm theo dữ liệu mà chúng ta muốn gửi.
Client gửi lên
GET là phương thức gửi dữ liệu đi qua đường dẫn URL nằm trên thanh địa chỉ của Browser. Server được nhận đường dẫn đó và phân tích trả về kết quả cho bạn. Server sẽ phân tích tất cả những thông tin đằng sau dấu hỏi (?). chính là phần dữ liệu mà Client gửi lên.
Để truyền nhiều dữ liệu lên Server chúng ta dùng dấu &
để phân cách giữa các cặp giá trị. Giả sử tôi muốn truyền id = 12
và title = ‘method_get’
. Thì URL sẽ có dạng freetuts.net?id=12&title=method_get
. Lưu ý với các bạn là vị trí các cặp giá trị không quan trọng. Nghĩa là cặp title
cũng có thể ở trước cặp id
cũng được.
Server nhận dữ liệu
Tất cả các dữ liệu mà Client gửi lên bằng phương thức GET. Đều được lưu lại trong một biến toàn cục mà PHP tự tạo ra đó là biến $_GET. Biến này là kiểu mảng kết hợp lưu trữ danh sách dữ liệu từ client gửi lên theo quy luật key => value
. Ví dụ với URL freetuts.net?id=12&title=method_get
dữ liệu sẽ được lưu trong biến $_GET dưới dạng:
Thực hành:
Bạn hãy tạo một file get.php nằm trong thư mục WWW của Vertrigo Server. hoặc thư mục htdocs của Xampp. Sau đó bạn copy đoạn code này vào:
tiếp theo bạn ra trình duyệt gõ đường dẫn sau.< localhost/get.php?id=12&title=method_get
>. và ngắm nhìn thành quả nhé. Bạn thử thay đổi hoặc thêm các giá trị xem có gì khác không.
Lưu ý quan trọng:
Trước lúc lấy một dữ liệu nào đó bạn phải kiểm tra tồn tại không không mới lấy nhé. Vì nếu bạn không kiểm tra đồng thời người dùng không truyền dữ liệu qua mà bạn lại nhận thì sẽ bị báo lỗi ngay. Để kiểm tra hãy dùng hàm isset($tenbien) trong php.
2. Phương thức POST trong PHP
POST có tính bảo mật hơn vì dữ liệu gửi phải thông qua một form HTML nên nó bị ẩn. Nghĩa là chúng ta không thể thấy các giá trị đó được.
Client Gửi Lên
Ở Phương thức GET thì dữ liệu được thấy trên URL thì phương thức POST thì hoàn toàn ngược lại. POST sẽ gửi dữ liệu qua một cái form HTML. Các giá trị sẽ được định nghĩa trong các input gồm các kiểu.(textbox, radio, checkbox, password, textarea, hidden) & được nhận dang thông qua tên (name) của các input đó.
Server nhận dữ liệu
Các liệu gửi bằng phương thức POST đều được lưu trong một biến toàn cục $_POST. Do PHP tự tạo ra. vì vậy dữ liệu thì bạn chỉ cần lấy trong biến này là được. Cũng như lưu ý với các bạn là trước khi lấy phải dùng hàm isset($bien)
. Để kiểm tra có hay không nhé.
Thực hành
1: Bạn tạo một file post.php
nằm trong thư mục WWW của Vertrigo Server hay thư mục htdocs của Xampp, sau đó nhập đoạn code tạo form này vào:
2:sau đó bạn mở trình duyệt gõ đường dẫn localhost/post.php
. Và ngắm nghía cái form mình vừa tạo ra nhé.
3:
Bạn hãy sửa lại đoạn mã HTML đó bằng cách thêm vào một đoạn mã PHP như sau.
4;Cuối cùng Bạn refresh lại trình duyệt rồi nhập tên đăng nhập và mật khẩu vào, sau đó nhấn vào button “Gửi Dữ Liệu” và nhìn thành quả của mình nhé.
3. So sánh giữa POST và GET
Các bạn muốn hiểu rõ hơn về hai phương thức POST và GET thì chúng ta cùng so sánh một chút xíu.
Giống nhau:
Đều gửi dữ liệu lên Server.
Khác nhau:
Phương thức POST bảo mật hơn GET vì dữ liệu được gửi ngầm mắt thường không thể nhìn thấy được.
Phương thức GET dữ liệu được gửi tường minh, ta có thể thấy trên URL nên nó không bảo mật.
Phương thức GET luôn nhanh hơn POST vì dữ liệu gửi đi được Browser giữ lại trong cache. Khi thực thi với POST Server luôn được thực thi lệnh rồi trả về cho Client, còn với GET thì Browser sẽ kiểm tra trong cache có chưa, nếu có thì trả về ngay chứ không cần gửi lên Server.
Khi nào dùng GET – POST
Khi dữ liệu bạn muốn SEO thì phải sử dụng phương thức GET.
Bạn biết không nếu dữ liệu bạn không cần bảo mật thì bạn hãy sử dùng phương thức GET. Ngược lại dữ liệu bảo mật thì dùng phương thức POST.
Ví dụ khi đăng nhập. Comment, đăng tin dùng phương thức POST. Còn khi lấy tin ra thì dùng phương thức GET…
Khi request sử dụng câu lệnh select thì dùng GET. Khi request sử dụng lệnh insert update, delete thì nên dùng POST.
Bài 20: Các hàm xử lý chuỗi trong php
Việc xử lý chuỗi trong PHP rất là quan trọng. Vì dữ liệu hiển thị trên trang web luôn luôn ở dạng chuỗi. Vì thế nếu bạn nắm vững và xử lý nhuần nhuyễn thì sẽ giúp bạn ít tốn công sức. và thời gian hơn mà web chạy lại nhanh nữa & bên dưới đây tôi sẽ liệt kê các Hàm xử lý chuỗi trong php thông dụng hay sử dụng nhất. Tuy nhiên chúng ta nên hiểu một số quy tắc trong chuỗi trước đã.
Nội dung chính
- 1. Quy tắc trong chuỗi
- 2. Các hàm xử lý chuỗi hay sử dụng
1. Quy tắc trong chuỗi
Nếu chuỗi đặt trong dấu nháy kép ""
thì các ký tự nháy kép "
bên trong chuỗi phải. thêm dấu gạch chéo đằng trước nó.
Nếu chuỗi đặt trong dấu nháy kép thì trong chuỗi ta có thể truyền biến vào mà không cần dùng phép nối chuỗi.
Nếu chuỗi đặt trong dấu nháy đơn ''
thì các ký tự nháy đơn '
bên trong chuỗi phải thêm dấu gạch chéo đằng trước nó.
2. Các hàm xử lý chuỗi hay sử dụng
Dưới đây là các hàm chúng ta hay sử dụng để xử lý chuỗi trong PHP.
addcslashes ($str, $char_list).
Hàm này ta thêm dấu gạch chéo (\) đằng trước những ký tự trong chuỗi $str. Mà ta liệt kê ở $char_list.
explode ( $delimiter , $string)
Hàm này sẽ chuyển một chuỗi $string thành một mảng các phần tử với ký tự tách mảng là $delimiter.
implode($delimiter, $piecesarray);
Hàm này ngược với hàm explode. Nó chuyển một mảng $piecesarray thành chuỗi và mỗi phần tử cách nhau bởi chuỗi $delimiter.
ord ( $string )
Hàm này đã trả về mã ASCII của ký tự đầu tiên trong chuỗi $string.
strlen($string)
Hàm này đếm tất cả ký tự của chuỗi $string.
str_word_count($str)
Hàm này trả về số từ trong chuỗi $str.
str_repeat( $str, int $n )
Hàm này lặp chuỗi $str $n lần.
str_replace( $chuoi_tim, $chuoi_thay_the, $chuoi_nguon )
Hàm này tìm kiếm và thay thế chuỗi.
Để thay thế nhiều chuỗi chúng ta có thể dùng mảng để truyền vào.
1: $str
=
'Freetuts Xin Chào Các Bạn'
;
.
2: $str
=
str_replace
(
array
(
'Freetuts'
,
'Xin Chào'
),
array
(
'Freetuts.net'
,
'Hello'
),
$str
);
.
3: echo
$str
;
// kết quả là Freetuts.net Hello Các Bạn
.
md5( $str)
Hàm này mã hóa chuỗi thành một dãy 32 ký tự (mã hóa md5).
sha1($string)
Hàm này mã hóa chuỗi thành một dãy 40 ký tự (mã hóa sha1).
htmlentities($str)
Hàm này chuyển các thể html trong chuỗi $str sang dạng thực thể của chúng (html sẽ ko còn tác dụng nên bạn có thể echo ra bên ngoài).
html_entity_decode($string)
Ngược lại với htmlentities. Hàm này chuyển ngược các ký tự dạng thực thể HTML sang dạng ký tự của chúng.
Tương tự như htmlentities.
htmlspecialchars_decode($string)
Tương tự như html_entity_decode.
Hàm này bỏ các thẻ html trong chuỗi $string được khai báo ở $allow_tags.
substr( $string, $start, $length )
Hàm này lấy một chuỗi con nằm trong chuỗi $str bắt đầu từ ký tự thứ $start và chiều dài $length.
strstr( $string, $ky_tu_cho_truoc )
Tách một chuỗi bắt đầu từ $ky_tu_cho_truoc cho đến hết chuỗi.
strpos($str, $chuoi_tim )
Tìm vị trí của chuỗi $chuoi_tim trong chuỗi $str, kết quả trả về false nếu không tìm thấy.
strtolower($str);
Chuyển tất cả các ký tự chuỗi $str sang chữ thường
strtoupper($string );
Chuyển tất cả các ký tự chuỗi $str sang chữ hoa
ucfirst( $string )
Chuyển ký tự đầu tiên chuỗi $string sang chữ hoa
ucfirst( $string )
Ta chuyển ký tự đầu tiên trong chuỗi $string sang chữ thường
ucwords( $string )
Chuyên từ đầu tiên trong chuỗi $string sang chữ hoa
trim($string, $ky_tu);
Ta xóa ký tự $ky_tu nằm ở đầu và cuối chuỗi $str, nếu ta không nhập $ky_tu thì mặc định nó hiểu là xóa khoảng trắng.
ltrim($string, $ky_tu);
Tương tự như trim nhưng chỉ xóa bên trái
rtrim($string, $ky_tu)
Tương tự như trim nhưng chỉ xóa bên phải
nl2br($string)
Chuyển các ký tự xuống dòng “\n” thành thẻ
json_decode($json, $is_array)
Được dùng để chuyển chuỗi dạng JSON sang các đối tượng mảng hoặc object. Nếu $is_array có giá trị false thì hàm sẽ chuyển một chuỗi $json thành một Class (object). Ngược lại nếu $is_array có giá trị true thì sẽ chuyển chuỗi $json thành một mảng.
json_encode($array_or_object)
Ta chuyển một mảng hoặc mội đối tượng (classs) sang chuỗi dạng JSON.
0 Lời bình