Định nghĩa.
Hàm addcslashes() là một hàm được xây dựng sẵn trong PHP. Hàm addcslashes() được dùng để thêm ký tự gạch chéo ngược vào trước các ký tự được chỉ định trong một chuỗi.
Cú pháp:
addcslashes( $string, $characters );
Trong đó:
$string
Là chuỗi chúng ta cần thêm dấu ký tự gạch chéo ngược vào trước các ký tự được chỉ định trong chuỗi.$characters
Là ký tự hoặc chuỗi được chỉ định thêm dấu gạch chéo ngược vào trước ký tự hoặc chuỗi đó. Với tham số là chuỗi chúng ta có thể chỉ định tham số là các ký tự từ a đến z, cách viết (a..z) đó là ký tự bắt đầu của phạm vi và theo sau là hai dấu chấm và ký tự kết thúc.
Lưu ý: Hàm addcslashes() có phân biệt chữ in hoa, in thường lên khi bạn truyền ký tự hoặc chuỗi ký tự là các tham số đầu vào cho hàm thì cần phải xác định, ký tự đó xuất hiện trong chuỗi ban đầu như vậy hàm sẽ cho bạn kết quả chính xác.
Ví dụ:
Ví dụ 1: Ví dụ dưới đây mình truyền 1 tham số cần thêm dấu ( / ) ở trước:
<?php $str = "Cook rice"; $resStr = addcslashes( $str, 'o'); echo $resStr;
Kết quả: sau khi chạy hàm bạn được một chuỗi mới: C\o\ok rice
Trong ví dụ trên mình truyền vào hàm một chuỗi $str
đây là chuỗi cần gốc và một ký tự (o) là ký tự được xác định có trong chuỗi và sẽ được thêm dấu gạch chéo ngược vào trước ký tự đó. Hàm sẽ tìm kiếm tất cả các ký tự ( o ) có trong chuỗi $str
và thêm dấu gạch chéo ngược vào trước ký tự đó.
Ví dụ 2: Đây là ví dụ với tham số đầu vào là một chuỗi các ký tự.
<?php $str = "CookCook"; $resStrLower = addcslashes($str, 'a..z'); $resStrUpper = addcslashes($str, 'o...C'); //Do có ký tự in hoa lên phải thêm một dấu chấm nữa. Nếu không sẽ xuất hiện cảnh báo lỗi. echo $resStrLower; //Kết quả là: C\o\o\kC\o\o\k echo $resStrUpper; //Kết quả là: \C\o\ok\C\o\ok
Trong ví dụ trên mình đã truyền tham số đầu vào là các ký tự nằm trong khoảng từ a đến z và từ o đến C đó đều là các ký tự xuất hiện trong chuỗi gốc. Đặc biệt lưu ý nếu trong chuỗi ký tự đầu vào của bạn có ký tự viết in hoa thì bạn phải thêm 1 dấu chấm nữa (a..C) chuyển thành (a…C) nếu không hàm sẽ xuất hiện cảnh báo lỗi.
Ví dụ 3: Đây là ví dụ mình tham khảo trên trang php.net.
Nếu bạn đang sử dụng addcslashes () để mã hóa văn bản mà sau này sẽ được giải mã trở lại dạng ban đầu, bạn phải chỉ định ký tự dấu gạch chéo ngược (\) trong danh ký tự ban đầu.
<?php $originaltext = 'This text does NOT contain \\n a new-line!'; $encoded = addcslashes($originaltext, '\\'); $decoded = stripcslashes($encoded); //$decoded now contains a copy of $originaltext with perfect integrity echo $decoded; //Display the sentence with it's literal \n intact ?>
Kết quả: This text does NOT contain \n a new-line!
Nếu ‘\’ không được chỉ định trong addcslash (), mọi chuỗi ký tự \ n (hoặc ký tự đặc biệt kiểu C) khác trong $originaltext
sẽ chuyển qua không được mã hóa, nhưng sau đó được giải mã thành các ký tự điều khiển bằng các chuỗi ký tự () dữ liệu sẽ mất tính toàn vẹn của nó thông qua giao dịch giải mã mã hóa.
Hàm liên quan.
- stripcslashes() Hàm sẽ loại bỏ các dấu gạch chéo ngược ( \ ) có trong chuỗi được thêm bởi hàm addcslashes().
- stripslashes() Hàm sẽ loại bỏ các dấu gạch chéo ngược ( \ ) có trong chuỗi được thêm bởi hàm addslashes().
- addslashes() Hàm sẽ trả về một chuỗi với các ký tự trong chuỗi có thêm dấu gạch chéo ngược ở đâu, hàm này không truyền tham số đầu vào xác định ký tự.
- htmlspecialchars() Hàm sẽ chuyển đổi một số ký tự được xác định trước thành các thực thể HTML.
- quotemeta() Hàm sẽ trả về một chuỗi có dấu gạch chéo ngược được thêm vào trước một số ký tự được xác định trước trong chuỗi.
Các bạn có thể xem chi tiết hơn trên php.net.
Hi vọng với bài viết này, bạn đã hiểu rõ ứng dụng của hàm addcslashes() trong PHP. Nếu bạn thấy bài viết hay và có ý nghĩa hãy like và chia sẻ bài viết này để mọi người cùng nhau học tập nhé.
Cảm ơn các bạn đã ghé thăm codetutam.com